データベースユーザーのデータベーステーブルに付与された権限のテーブルを生成するにはどうすればよいですか?
-
03-07-2019 - |
質問
約数百のテーブルを持つSQL Server 2000データベースがあります。このデータベースにアクセスできるいくつかのSQLユーザーアカウントがありますが、各アカウントにはDBのテーブルに対して異なるアクセス許可が付与されています。
特定のユーザーに付与された権限のレポートを提供するスクリプトを作成するにはどうすればよいですか。つまり、次のようなものを生成します:
Table SELECT DELETE UPDATE INSERT ALTER
----- ------ ------ ------ ------ -----
Invoices Yes No Yes Yes No
Orders Yes Yes Yes Yes No
Customers Yes No Yes Yes No
など。金曜日です。今日のSQL-fuは低く、今日ここで終わる前に他にやることがたくさんあります。もし誰かがこれを行う便利なスクリプトを持っているなら、私は永遠に感謝します:)
解決
Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES
where GRANTEE = @username
これはSQL Server 2000/2005/2008で動作します
他のヒント
この手順がSQL 2000で機能するかどうかはわかりません。正確な形式を取得できませんが、そこにある方法の一部を取得する可能性があります。 p>
sys.sp_helprotect @Username = 'myUser'
所属していません StackOverflow