2009-06-09 8 views
7

MS SQL Serverでは、データベースプロパティダイアログの左側に「接続プロパティの表示」リンクがあります。これをクリックすると、認証方法、ネットワークプロトコル、コンピュータ名などの現在の接続のプロパティを持つ「接続プロパティ」ダイアログが表示されます。SQL Serverの現在の接続プロパティの取得

SQLクエリを実行してプログラムによって情報を取得する方法はありますか?そのクエリはどのように見えますか?

答えて

18

SQL 2005以降では、sys.dm_exec_connectionsを問い合わせます。あなたの現在の接続のプロパティを取得するには、実行したい:

select * from sys.dm_exec_connections 
where session_id = @@SPID 

フィールドの値は、(共有メモリ、名前付きパイプまたはTCP)を接続するために使用されるプロトコルに依存するが、すべてが認証に使用する方法、プロトコルおよびクライアントのネットに関する情報が含まれています住所。

+0

全体の接続文字列はどうですか? –

+0

特定のデータベースに対して、単純なdb_ownerロール以上のアクセス許可が必要です。 – Zarepheth

0

答えは「いいえ」と思います。 コンピュータの情報はコンピュータに保存されています。 接続情報は、コンフィギュレーションファイルまたはMS SQL Serverに格納されている可能性があります。

しかし、MSSQL system tablesをご覧になり、所有しているプロパティを確認してください。

4

はい、可能ですが、接続プロパティーのUIに表示されるものがいくつかの場所から来ているため、後にどのプロパティーを使用するかによって異なります。

いくつかのプロパティを取得するためにいくつかのクエリ(​​およびselect suser_sname()など)を使用しますが、xp_instance_regreadストアドプロシージャも使用して、サーバーのレジストリからいくつかの値を取得します。

SQLを使用してSQLエンジンとやりとりすることができます。プロファイラセッションを開始し、UIでアクションを実行すると、何か(時にはあいまいな/文書化されていない/サポートされていない)SQLが実行されます。

関連する問題