角色db_owner允许什么


15

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

Answers:


15

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

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()返回有效权限,因此可以将其视为聚合。


这是否意味着具有db_owner成员资格的用户默认情况下具有与db_reader和相同的权限db_writer
webworm

5
的一名成员db_owner固定数据库角色都会有SELECTINSERTUPDATE,和DELETE数据库的访问权限。在许多其他权限中,但是的,这是正确的。
Thomas Stringer 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.