ネイティブ ソリューション
- 開始 Microsoft SQL Server Management Studio (MSSMS)。
- 「File 」メニューで、Connect Object Explorer をクリックします。次に、Connect to Server ダイアログ ボックスで:
- Server type の一覧ボックスで、Database Engine を選択します。
- Server name のテキスト ボックスに、SQL クラスター サーバーの名前を入力します。
- Authentication の一覧ボックスで、SQL Server Authentication の 方法を選択し、ユーザー資格情報を指定します。サーバーに接続するたびにパスワードを再入力したくない場合は、Remember password にチェックを入れます。
- Connect をクリックします。
- 接続したら「New Query」をクリックし、次のクエリをクエリ欄に貼り付けます(完全なユーザー名を入力してください。例: ENTERPRISE\J.Carter):
--- Creating temporary table for permissions list ---
SELECT entity_class,
NAME AS entity_name,
subentity_name,
permission_name
INTO #permsummary
FROM (
--- Collecting object-level permissions ---
SELECT 'OBJECT' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.objects
CROSS apply Fn_my_permissions(Quotename(NAME), 'OBJECT') a
UNION ALL
--- Collecting database-level permissions ---
SELECT 'DATABASE' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.databases
CROSS apply Fn_my_permissions(Quotename(NAME), 'DATABASE') a
UNION ALL
--- Collecting server-level permissions ---
SELECT 'SERVER' AS entity_class,
@@SERVERNAME AS NAME,
subentity_name,
permission_name
FROM Fn_my_permissions(NULL, 'SERVER')) p
--- Grouping all effective permissions for single object ---
SELECT DISTINCT entity_class,
entity_name,
subentity_name,
permissions
FROM (SELECT *
FROM #permsummary) p1
CROSS APPLY (SELECT permission_name + ', '
FROM (SELECT *
FROM #permsummary) p2
WHERE p2.entity_class = p1.entity_class
AND p2.entity_name = p1.entity_name
AND p2.subentity_name = p1.subentity_name
ORDER BY entity_class
FOR xml path('')) D ( permissions )
--- Delete temporary table ---
DROP TABLE #permsummary
- 「Execute」をクリックします(または F5 キーを押します)。
- クエリ実行結果にある、サーバーレベルのロールとプリンシパル(メンバー名)の一覧を確認します:
Netwrix Auditor for SQL Server
- Netwrix Auditor を開き、Reports -> Predefined -> SQL Server - State-in-Time -> Account Permissions in SQL Server に移動します。
- 次のフィルターを指定してください:
- 「User account」フィルターでは、完全なユーザー名を入力します(例:ENTERPRISE\J.Carter)
- 「Object type」フィルターで、Select all を選択すると、ユーザーのすべての権限を確認できます。
- View をクリックして、ユーザーの有効な権限に関するわかりやすいレポートを表示します:
「Means Granted」フィールドは、対象ユーザーに割り当てられているサーバーロールとデータベースロールを反映します。値をクリックすると、SQL Server Means Granted レポートが開きます。このレポートでは、選択した SQL Server オブジェクトに対する各アカウントの明示的な権限と継承された権限、およびそれらの権限がどのように付与されたかが表示されます。
共有する