SQL Serverでログイン一覧、ロール一覧を出力する方法

SQL Serverでログインの一覧で出力する方法を紹介します。また、各データベースでのログインと割り当てているロールを一覧で出力する方法も紹介しています。

インスタンスのログイン

SQL Serverインスタンス内のログインを一覧で表示するには、以下のクエリーを実行します。

select sid, name, type_desc, type, is_disabled from sys.server_principals

必要であれば、type_descあるいはtypeをwhereで指定して、出力されるログインを制限します。

各データベースのログインとロール

データベースに設定されているログインとロールを確認するためのクエリーは以下の通りになります。

use DatabaseName
select r.sid, r.name, m.sid, m.name from sys.database_role_members rm
left outer join sys.database_principals r on rm.role_principal_id = r.principal_id
left outer join sys.database_principals m on rm.member_principal_id = m.principal_id

ロールとログインのsidと名前を出力しています。

sidが必要ないなら、名前の出力のみにしてロールの名前とメンバーの名前を項目名にするといいです。

use DatabaseName
select r.name RoleName, m.name MemberName from sys.database_role_members rm
left outer join sys.database_principals r on rm.role_principal_id = r.principal_id
left outer join sys.database_principals m on rm.member_principal_id = m.principal_id

項目名をRoleName、MemberNameにして、どちらの名前かを明確にしています。

各データベースのロールとログインを出力する場合、最初にUseでそのデータベースにコンテキストを変更してからクエリーを実行します。

Follow me!

Feedlyで新着記事をチェックしよう!

Feedlyでフォローしておけば、新着記事をチェックすることができます。ぜひ、この機会にFeedlyに追加しておきましょう。