ユーザーが特定の効果的な権限を持っている理由を調べるにはどうすればよいですか?


14

私は次を使用して有効なアクセス許可を照会できることを知っていますsys.fn_my_permissions

USE myDatabase;
SELECT * FROM fn_my_permissions('dbo.myTable', 'OBJECT') 

 entity_name | subentity_name | permission_name 
------------------------------------------------
 dbo.myTable |                | SELECT          
 dbo.myTable |                | UPDATE          
 ...

これにより、現在のユーザーがmyTabledatabaseでSELECT、INSERT、UPDATEなどの権限を持っているかどうかがわかりますmyDatabase

ユーザーがこれらの権限を持っている理由を簡単に見つけることは可能ですか?たとえばfn_my_permissions_ex、追加のreason列を出力する関数が必要です。

USE myDatabase;
SELECT * FROM fn_my_permissions_ex('dbo.myTable', 'OBJECT') 

 entity_name | subentity_name | permission_name | reason
------------------------------------------------------------------------------------------------------------------------------------
 dbo.myTable |                | SELECT          | granted to database role public
 dbo.myTable |                | UPDATE          | member of group MYDOMAIN\Superusers, which belongs to database role db_datawriter
 ...

残念ながら、SQL Serverのドキュメントにはそのような関数が見つかりませんでした。この機能を提供するツールまたはスクリプトはありますか?


なぜあなたはそれをtxtファイルにエクスポートしませんか?あなたはどのOSを使用していますか?
jcho360

1
@ jcho360:関数はないfn_my_permission_exので、エクスポートできるものは何もありません。私はその機能を備えた機能またはツールがあるかどうかを尋ねています
ハインジ

SSMSを使用していますか?
jcho360

1
素晴らしい質問。私はこれを非常に長い間理解しようとしてきました。fn_my_permissionsは少し動作しますが、多くの場合、オリジンまで追跡できない許可を表示します。
PseudoToad 14年

回答:


8

以下の記事からセキュリティに関するいくつかの良い情報を見つけることができます。

SQL Serverのアクセス許可の確認| TechRepublic http://tek.io/KfzEyp

を除く:

次のクエリは、sys.database_permissionsシステムビューを使用して、現在のデータベース内で特定のアクセス許可を持つユーザーを示します。

SELECT
        dp.class_desc
       ,dp.permission_name
       ,dp.state_desc
       ,ObjectName = OBJECT_NAME(major_id)
       ,GranteeName = grantee.name
       ,GrantorName = grantor.name
    FROM
        sys.database_permissions dp
        JOIN sys.database_principals grantee
        ON dp.grantee_principal_id = grantee.principal_id
        JOIN sys.database_principals grantor
        ON dp.grantor_principal_id = grantor.principal_id
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.