服务器级别角色

为帮助您管理服务器上的权限,SQL Server 提供了若干角色。这些角色是用于对其他主体进行分组的安全主体。 服务器级角色的权限作用域为服务器范围。 (“角色”类似于 Windows 操作系统中的“组”。)

提供固定服务器角色是为了方便使用和向后兼容。 应尽可能分配更具体的权限。

SQL Server 提供了九种固定服务器角色。 无法更改授予固定服务器角色的权限。 从 SQL Server 2012 开始,您可以创建用户定义的服务器角色,并将服务器级权限添加到用户定义的服务器角色。

您可以将服务器级主体(SQL Server 登录名、Windows 帐户和 Windows 组)添加到服务器级角色。 固定服务器角色的每个成员都可以将其他登录名添加到该同一角色。 用户定义的服务器角色的成员则无法将其他服务器主体添加到角色。

服务器级的固定角色

下表显示了服务器级的固定角色及其权限。

服务器级的固定角色

说明

sysadmin

sysadmin 固定服务器角色的成员可以在服务器中执行任何活动。

serveradmin

serveradmin 固定服务器角色的成员可以更改服务器范围内的配置选项并关闭服务器。

securityadmin

securityadmin 固定服务器角色的成员管理登录名及其属性。 他们可以 GRANT、DENY 和 REVOKE 服务器级权限。 他们还可以 GRANT、DENY 和 REVOKE 数据库级权限(如果他们具有数据库的访问权限)。 此外,他们还可以重置 SQL Server 登录名的密码。

安全说明安全说明

能够授予数据库引擎的访问权限和配置用户权限的能力使得安全管理员可以分配大多数服务器权限。 securityadmin 角色应视为与 sysadmin 角色等效。

processadmin

processadmin 固定服务器角色的成员可以终止在 SQL Server 实例中运行的进程。

setupadmin

setupadmin 固定服务器角色的成员可以使用 Transact-SQL 语句添加和删除链接服务器。 (在使用 Management Studio 时需要 sysadmin 成员资格。)

bulkadmin

bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。

diskadmin

diskadmin 固定服务器角色用于管理磁盘文件。

dbcreator

dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。

public

每个 SQL Server 登录名均属于 public 服务器角色。 如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。当您希望该对象对所有用户可用时,只需对任何对象分配 public 权限即可。 您无法更改 public 中的成员关系。

注意注意

public 的实现方式与其他角色不同。 但是,可以从 public 授予、拒绝或撤销权限。

服务器级权限

只能向用户定义的服务器角色中添加服务器级权限。 若要列出服务器级别的权限,请执行下面的语句。服务器级别权限如下:

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;

有关权限的详细信息,请参阅权限(数据库引擎)sys.fn_builtin_permissions (Transact-SQL)

使用服务器级角色

下表介绍了可以用于服务器级角色的命令、视图和功能。

功能

类型

说明

sp_helpsrvrole (Transact-SQL)

元数据

返回服务器级角色的列表。

sp_helpsrvrolemember (Transact-SQL)

元数据

返回有关服务器级角色成员的信息。

sp_srvrolepermission (Transact-SQL)

元数据

显示服务器级角色的权限。

IS_SRVROLEMEMBER (Transact-SQL)

元数据

指示 SQL Server 登录名是否为指定服务器级角色的成员。

sys.server_role_members (Transact-SQL)

元数据

为每个服务器级角色的每个成员返回一行。

sp_addsrvrolemember (Transact-SQL)

命令

将登录名添加为某个服务器级角色的成员。 不推荐使用。 应改用 ALTER SERVER ROLE

sp_dropsrvrolemember (Transact-SQL)

命令

从服务器级角色中删除 SQL Server 登录名或 Windows 用户或组。 不推荐使用。 应改用 ALTER SERVER ROLE

CREATE SERVER ROLE (Transact-SQL)

命令

创建用户定义的服务器角色。

ALTER SERVER ROLE (Transact-SQL)

命令

更改服务器角色的成员关系或更改用户定义的服务器角色的名称。

DROP SERVER ROLE (Transact-SQL)

命令

删除用户定义的服务器角色。

IS_SRVROLEMEMBER (Transact-SQL)

功能

确定服务器角色的成员关系。

请参阅

参考

数据库级别的角色

安全性目录视图 (Transact-SQL)

安全函数 (Transact-SQL)

通过 GRANT 语句授予服务器主体权限 (Transact-SQL)

撤消服务器主体权限 (Transact-SQL)

拒绝服务器主体权限 (Transact-SQL)

概念

保护 SQL Server

创建服务器角色