db_datareader、db_datawriter 和 db_owner 权限

Ozk*_*kan 6 sql-server permissions sql-server-2012

首先,抱歉,因为我不是 DBA,也不熟悉所有权限。

我的问题是,如果我授予用户db_owner对一个数据库的权限。我是否需要也给db_datareaderdb_datawriter权限有完全控制权?我认为db_owner足以对数据库执行各种查询?(创建、删除、更改、选择和所有其他内容)。

所以,简而言之:如果我选择db_owner,那么db_datareaderdb_datawriter将自动包含在内。我对吗?

Sha*_*nky 5

如果您已授予 db_owner 权限,则无需授予 db_datareader 和 db_datawriter 权限。根据玻尔

数据库所有者:

db_owner 固定数据库角色的成员可以对数据库执行所有配置和维护活动,还可以删除数据库。

即使您选中相应角色的复选框也不会产生任何影响


Jul*_*eur 4

根据数据库级角色

db_owner 固定数据库角色的成员可以对数据库执行所有配置和维护活动,还可以删除数据库。

此数据库级别角色的成员可以对数据库执行任何他想要的操作。这还包括 SELECT、INSERT、UPDATE 和 DELETE 数据。

当您使用户成为 db_owner 的成员时,您仍然必须确保没有授予用户太多的权限...

您可以在数据库上与此用户连接并运行此查询以使用sys.fn_my_permissions查看有效的数据库级别权限:

SELECT *
FROM sys.fn_my_permissions(null, 'database')
--WHERE permission_name IN ('SELECT', 'UPDATE', 'DELETE', 'INSERT')
ORDER BY permission_name
Run Code Online (Sandbox Code Playgroud)

仅包含 db_owner 的输出包括以下行:

entity_name subentity_name  permission_name
...         ...             ...
database                    DELETE
database                    INSERT
database                    SELECT
database                    UPDATE
...         ...             ...
Run Code Online (Sandbox Code Playgroud)