[SQL SERVER][TSQL]如何查詢登入者有效權限

[SQL SERVER][TSQL]如何查詢登入者有效權限

網友問題,自己備忘紀錄。

 

查詢目前登入者資料庫層級有效權限語法

execute as login=SUSER_SNAME();
select * from fn_my_permissions(null,'database')
ORDER BY subentity_name, permission_name ;  
REVERT;
go 

PS:要查看其他登入者有效權限清單,須先確認是否有 IMPERSONATE 權限

 

 

登入者:mypc\chen

image

 

結果:

image

 

查看登入者 rico 有效權限清單

 

--確認是否可以模擬
SELECT HAS_PERMS_BY_NAME('rico', 'LOGIN', 'IMPERSONATE');

image

 

execute as login='rico';
select * from fn_my_permissions(null,'database')
ORDER BY subentity_name, permission_name ;  
REVERT;
go 

 

結果:

image

 

 

 

 

參考

fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

安全性函數 (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)