Sql-Server
角色 db_owner 允許什麼
我一直在嘗試解決無法查看 SQL Server 2012 數據庫中某些表的登錄問題。這樣做時,我發現我不太了解該
db_owner
角色的成員資格允許什麼。我可以理解其他角色,例如,db_datareader and db_datawriter
但我仍然對db_owner
允許的內容感到困惑。
請參閱BOL for Database-Level Roles的參考資料:
db_owner
db_owner 固定數據庫角色的成員可以對數據庫執行所有配置和維護活動,也可以刪除數據庫。
查看所有權限的最簡單方法是使用該
sys.fn_my_permissions()
功能。首先確認您是以下成員db_owner
:select rol.name from sys.database_principals mem inner join sys.database_role_members drm on drm.member_principal_id = mem.principal_id inner join sys.database_principals rol on drm.role_principal_id = rol.principal_id where mem.principal_id = user_id();
現在列出所有有效的數據庫權限:
select * from sys.fn_my_permissions(null, 'database');
對於您的目的,這應該足夠細化。需要注意
sys.fn_my_permissions()
的是,返回有效權限,因此將其視為聚合。