Sql-Server

角色 db_owner 允許什麼

  • May 31, 2020

我一直在嘗試解決無法查看 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()的是,返回有效權限,因此將其視為聚合。

引用自:https://dba.stackexchange.com/questions/69135