使用 Management Studio 和 Transact 查询创建 SQL Server 角色的分步方法。在开始配置新角色之前,我将向您展示 Management Studio 中默认服务器角色的列表。
以下是 SQL 中可用的服务器角色列表。
- bulkadmin:此角色的成员可以运行 批量插入 语句。
- dbcreator:此角色的成员可以创建、修改、恢复和删除任何 数据库。
- diskadmin:磁盘管理员用户用于管理磁盘文件。
- processadmin:此角色可以结束实例中所有正在运行的进程。
- public:默认情况下,所有登录都属于 Public 服务器。
- securityadmin:此角色的成员可以授予、拒绝、撤销服务器级别和数据库级别的权限。他们还可以重置所有 登录。
- serveradmin:管理员成员可以关闭服务器,或更改服务器范围的配置。
- setupadmin:拥有此角色的成员可以使用 Transact 查询添加或删除链接服务器。
- sysadmin:成员可以在服务器上执行任何操作。此成员还会绕过其他成员提供的任何限制。
使用 SSMS 创建 SQL Server 角色
要创建一个新的角色,请展开“服务器角色”文件夹,右键单击该文件夹以打开上下文菜单。请选择“新建...”选项。

选择“新建”选项后,将打开以下窗口。
- 服务器角色名称:请使用唯一名称。从名称中应能理解其功能。
- 所有者:您需要指定所有者的名称。此人可以根据自己的需求进行更改。
- 安全对象:请指定此角色需要处理的安全对象。例如,您可以使用终结点、登录名等。

从下面的屏幕截图中可以看到,我们将 udr_MasterServerRole 指定为名称。我将单击“...”(浏览)按钮来选择所有者。请参考 创建 Windows 登录 或 创建服务器登录 来了解创建登录涉及的步骤。

选择用户
单击“...”按钮后,将打开以下窗口。如果您知道名称,请在文本框中输入名称,然后单击“检查名称”按钮。

如您所见,它已自动恢复了帐户信息。如果您不记得名称,请单击“浏览”按钮。

它显示了所有现有用户。请从列表中选择用户。

单击“确定”关闭此 SQL 选择服务器登录名或角色窗口

目前,我们将服务器角色选为安全对象

在“成员”选项卡中,您可以添加成员。例如添加您的团队成员。

使用上述指定的技术添加成员。从下面的屏幕截图中可以看到,我们正在添加 Mahesh 的登录。

现在您可以看到我们的新角色成员。

在“成员身份”选项卡中,您可以为此角色分配一个或多个默认 SQL Server 角色。目前,我们选择所有这些。

从下面的屏幕截图中,您可以在 Management Studio 中看到我们新创建的角色。

SQL CREATE SERVER ROLE
服务器提供 CREATE SERVER ROLE 命令来创建一个新的角色。下面的代码片段显示了其语法。
USE [master] GO CREATE SERVER ROLE [Role Name] [ AUTHORIZATION User_Name]; GO
下面的代码片段将创建一个名为 udr_SecurityAdmin 的新角色。
USE [master] GO CREATE SERVER ROLE [udr_SecurityAdmin]; GO
运行上面的查询
Messages
--------
Command(s) completed successfully.
在以下屏幕截图中查看我们在对象资源管理器中新创建的服务器角色。

请转到其属性以编辑或查看角色设置。默认情况下,它已将当前用户指定为所有者,因为我们在语句中未提供所有者信息。

我将所有者指定为 John
USE [master]
GO
CREATE SERVER ROLE [udr_dbcreator]
AUTHORIZATION John;
GO
运行上面的查询
Messages
--------
Command(s) completed successfully.
您可以看到新角色。从属性中,您可以看到所有者是 John。

使用 SSMS 编辑 SQL Server 角色
请转到“角色”文件夹以编辑现有角色,选择所需名称 — 右键单击要编辑的名称,然后从上下文菜单中选择“属性”选项。

选择“属性”后,将打开以下窗口。使用此窗口可以更改所有者、安全对象、成员和成员身份。

如何使用查询编辑或修改 SQL Server 角色
使用 ALTER SERVER ROLE 命令编辑属性。下面的代码片段将把 udr_SecurityAdmin 重命名为 udr_NewSecurityAdmin。
USE [master] GO ALTER SERVER ROLE [udr_SecurityAdmin] WITH NAME = [udr_NewSecurityAdmin] GO
执行 alter 查询
Messages
--------
Command(s) completed successfully.
您可以看到更新后的角色。

添加角色成员
下面的代码片段将为现有的服务器角色:udr_NewSceirutyAdmin 添加新成员。
USE [master] GO ALTER SERVER ROLE [udr_NewSecurityAdmin] ADD MEMBER [Mahesh]; GO
运行添加服务器成员的查询。
Messages
--------
Command(s) completed successfully.
以下代码将向现有的服务器角色:udr_NewSceirutyAdmin 添加新的 Windows 登录 [PRASAD\Dave]。
USE [master] GO ALTER SERVER ROLE [udr_NewSecurityAdmin] ADD MEMBER [PRASAD\Dave]; GO
运行上述新的 Windows 登录查询。
Messages
--------
Command(s) completed successfully.
从属性中,您可以看到我们之前添加的新角色成员。

删除角色成员
下面的代码将从 udr_NewSecurityAdmin 中删除 PRASAD\Dave 服务器角色成员。
USE [master] GO ALTER SERVER ROLE [udr_NewSecurityAdmin] DROP MEMBER [PRASAD\Dave]; GO
执行删除成员的查询。
Messages
--------
Command(s) completed successfully.
您可以在属性中找到相同的内容。

您也可以通过查询授予权限。我们将撰写一篇专门的文章来介绍权限。
USE [master] GO GRANT ALTER ON SERVER ROLE::[udr_NewSecurityAdmin] TO [PRASAD\Dave]; GO
运行 grant permissions 查询
Messages
--------
Command(s) completed successfully.
使用 SSMS 删除角色
请展开“服务器角色”文件夹以选择要删除的现有角色的名称。右键单击要删除的名称,然后选择“删除”选项。

选择“删除”选项后,将打开以下窗口。单击“确定”删除服务器角色。

SQL 删除或丢弃服务器角色
它提供 DROP SERVER ROLE 命令来删除或丢弃现有的角色。
USE [master] GO DROP SERVER ROLE [udr_dbcreator]; -- This is Role Name GO
Messages
--------
Command(s) completed successfully.
现在您可以看到没有名为 udr_dbcreator 的角色了。
