SQL Serverでユーザー権限を確認する方法
- Microsoft SQL Server Management Studio(MSSMS)を起動します。
- ファイルメニューで、オブジェクトエクスプローラの接続をクリックします。 次に、[サーバーへの接続]ダイアログボックスで、[サーバーへの接続]を選択します:
- [サーバーの種類]リストボックスで、[データベースエンジン]を選択します。
- サーバー名テキストボックスに、SQLクラスターサーバーの名前を入力します。
- 認証リストボックスで、SQL Server認証方法を選択し、ユーザー資格情報を指定します。 サーバーに接続するたびにパスワードを再入力したくない場合は、[パスワードを記憶する]にチェックを入れます。
- [接続]をクリックします。
- 接続時に、”新規クエリ”をクリックし、次のクエリをクエリフィールドに貼り付けます(ENTERPRISE\J.Carterなどの完全なユーザー名を入力します)。:
— 権限リストの一時テーブルの作成—
SELECT entity_class,
NAME AS entity_name,
subentity_name,
permission_name
INTO#permsummary
FROM(
—オブジェクトレベルの権限の収集—
SELECT’OBJECT’AS entity_class,
NAME,
Subentity_name,
permission_NAME
sysから。オブジェクト
CROSS apply Fn_My_Permissions(Quotename(NAME),’OBJECT’)a
UNION ALL
—データベースレベルの権限の収集—
sysから’DATABASE’をentity_class,
NAME,
subentity_name,
permission_name
として選択します。データベース
CROSS apply Fn_My_Permissions(Quotename(NAME),’DATABASE’)a
UNION ALL
—サーバーレベルの権限の収集—
SELECT’SERVER’AS entity_class,
@@SERVERNAME AS NAME,
subentity_name,
permission_name
FROM FN_My_Permissions(NULL,’SERVER’))p
UNION ALL
—サーバーレベルの権限の収集—
SELECT’SERVER’AS entity_class,
@@SERVERNAME AS NAME,
subentity_name,
permission_name
FROM fn_My_Permissions(NULL,’SERVER’))p
—単一オブジェクトのすべての有効な権限のグループ化—
select distinct entity_class,
entity_name,
subentity_name,
PERMISSIONS
from(select*
FROM#PERMSUMMARY)p1
cross apply(select permission_name+’,’
From(Select*
FROM#PERMSUMMARY) #permsummary)p2
ここでp2。entity_class=p1.entity_class
とp2。entity_name=p1.entity_name
およびp2。subentity_name=p1.subentity_name
order BY entity_class
FOR xml path(“))D(permissions)
—一時テーブルの削除—
テーブルの削除#permsummary
- [実行]をクリックします(またはF5キーを押します)。
- クエリ実行結果のサーバーレベルのロールとプリンシパル(メンバー名)のリストを確認します: