SQLサーバー内でユーザー権限をはく奪するのに使用したコード一覧メモ
ユーザーがどのテーブルのどの権限を持っているか確認
DBを指定
USE [sampleDB]
SELECT
USER_NAME(grantee_principal_id) AS ユーザー名,
class_desc AS クラス,
OBJECT_NAME(major_id) AS オブジェクト名,
permission_name as 権限名
FROM sys.database_permissions
WHERE grantee_principal_id = USER_ID('sampleDbRole') --ユーザー名 or ロール名を指定
はく奪用コード(ALTERはALLだと消えなかったので別枠)
DBを指定
USE [sampleDB]
REVOKE ALL ON [テーブル名] TO [ユーザー名];
REVOKE ALTER ON [テーブル名] TO [ユーザー名];
SELECT
USER_NAME(grantee_principal_id) AS ユーザー名,
class_desc AS クラス,
OBJECT_NAME(major_id) AS オブジェクト名,
permission_name as 権限名
FROM sys.database_permissions
WHERE grantee_principal_id = USER_ID('sampleDbRole') --ユーザー名 or ロール名を指定
DATABASEクラスのCONNECT権限をはく奪するコード
DBを指定
USE [sampleDB]
REVOKE CONNECT ON DATABASE::KENPO_DB TO ユーザー名;
SELECT
USER_NAME(grantee_principal_id) AS ユーザー名,
class_desc AS クラス,
OBJECT_NAME(major_id) AS オブジェクト名,
permission_name as 権限名
FROM sys.database_permissions
WHERE grantee_principal_id = USER_ID('sampleDbRole') --ユーザー名 or ロール名を指定