为便于管理数据库中的权限,SQL Server 提供了若干“角色”,这些角色是用于分组其余主体的安全主体。它们相似于 Microsoft Windows 操做系统中的组。数据库级角色的权限做用域为数据库范围。数据库
SQL Server 中有两种类型的数据库级角色:数据库中预约义的“固定数据库角色”和您能够建立的“灵活数据库角色”。安全
固定数据库角色是在数据库级别定义的,而且存在于每一个数据库中。db_owner 和 db_securityadmin 数据库角色的成员能够管理固定数据库角色成员身份。可是,只有 db_owner 数据库角色的成员可以向 db_owner 固定数据库角色中添加成员。msdb 数据库中还有一些特殊用途的固定数据库角色。服务器
您能够向数据库级角色中添加任何数据库账户和其余 SQL Server 角色。固定数据库角色的每一个成员均可向同一个角色添加其余登陆名。函数
重要提示:操作系统
请不要将灵活数据库角色添加为固定角色的成员。这会致使意外的权限升级。代理
下表显示了固定数据库级角色及其可以执行的操做。全部数据库中都有这些角色。orm
数据库级别的角色名称及说明
db_owner 固定数据库角色的成员能够执行数据库的全部配置和维护活动,还能够删除数据库。对象
db_securityadmin 固定数据库角色的成员能够修改角色成员身份和管理权限。向此角色中添加主体可能会致使意外的权限升级。继承
db_accessadmin 固定数据库角色的成员能够为 Windows 登陆名、Windows 组和 SQL Server 登陆名添加或删除数据库访问权限。作用域
db_backupoperator 固定数据库角色的成员能够备份数据库。
db_ddladmin 固定数据库角色的成员能够在数据库中运行任何数据定义语言 (DDL) 命令。
db_datawriter 固定数据库角色的成员能够在全部用户表中添加、删除或更改数据。
db_datareader 固定数据库角色的成员能够从全部用户表中读取全部数据。
db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。
db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。
有关数据库级固定角色权限的特定信息,请参阅固定数据库角色的权限(数据库引擎)。
msdb 角色 msdb 数据库中包含下表显示的特殊用途的角色。
msdb 角色名称及说明
这些数据库角色的成员能够管理和使用 SSIS。从早期版本升级的 SQL Server 实例可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的旧版本角色。有关详细信息,请参阅 使用 Integration Services 角色。
这些数据库角色的成员能够管理和使用数据收集器。有关详细信息,请参阅数据收集器的安全性。
db_ PolicyAdministratorRole 数据库角色的成员能够对基于策略的管理策略和条件执行全部配置和维护活动。有关详细信息,请参阅使用基于策略的管理来管理服务器。
这些数据库角色的成员能够管理和使用注册的服务器组。有关详细信息,请参阅建立服务器组。
重要提示:
db_ssisadmin 角色和 dc_admin 角色的成员也许能够将其权限提高到 sysadmin。之因此会发生此权限提高,是由于这些角色能够修改 Integration Services 包,而 SQL Server 可使用 SQL Server 代理的 sysadmin 安全上下文来执行 Integration Services 包。若要防止在运行维护计划、数据收集组和其余 Integration Services 包时出现此权限提高,请将运行包的 SQL Server 代理做业配置为使用拥有有限权限的代理账户,或只将 sysadmin 成员添加到 db_ssisadmin 和 dc_admin 角色。
使用服务器级角色
下表说明了用于服务器级角色的命令、视图和函数。
功能 类型 说明
public 数据库角色
每一个数据库用户都属于 public 数据库角色。若是未向某个用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的 public 角色的权限