角色 db_owner 允许什么

web*_*orm 16 security sql-server sql-server-2012

我一直在尝试解决无法查看 SQL Server 2012 数据库中某些表的登录问题。在这样做时,我发现我不太了解db_owner角色中的成员资格允许的内容。我可以理解其他角色,db_datareader and db_datawriter但我对db_owner允许的内容仍然感到困惑。

Tho*_*ger 16

请参阅有关数据库级角色的 BOL参考

数据库所有者

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();
Run Code Online (Sandbox Code Playgroud)

现在列出所有有效的数据库权限:

select *
from sys.fn_my_permissions(null, 'database');
Run Code Online (Sandbox Code Playgroud)

这应该足以满足您的目的。需要注意的是,sys.fn_my_permissions()返回有效权限,因此将其视为聚合。

  • `db_owner` 固定数据库角色的成员将拥有对数据库的 `SELECT`、`INSERT`、`UPDATE` 和 `DELETE` 权限。在许多其他权限中,但是是的,这是正确的。 (5认同)