1. MS SQL新建服务器角色:掌控访问权限
在MS SQL Server上,我们经常需要创建新的服务器角色来管理数据库的访问权限。新建服务器角色的最主要目的是为了保证数据库的安全性。服务器管理员可以在角色中分配权限,然后将角色分配给用户或其他角色。在本文中,我们将学习如何创建一个新的服务器角色,为其赋予适当的权限,以便掌控访问权限。
1.1 准备工作
在创建新的服务器角色之前,您需要登录SQL Server Management Studio(SSMS)并以系统管理员或具有sysadmin权限的用户身份登录。在本文中,我们使用以下环境:
SQL Server 2019 Developer Edition
SQL Server Management Studio 18.8
1.2 创建新的服务器角色
创建新的服务器角色很简单。我们可以使用以下SQL语句来创建:
CREATE SERVER ROLE [MyServerRole] AUTHORIZATION [sa];
在上面的语句中,我们使用CREATE SERVER ROLE命令并指定角色名称为“ MyServerRole”。 AUTHORIZATION关键字指定“ sa”用户账户作为新角色的所有者。
一旦角色创建成功,我们可以将需要的权限添加到该角色中。 SQL Server提供了许多内置权限,您可以根据需要进行分配。如果要在新角色中添加多个权限,则可以使用以下命令:
USE [master];
GO
GRANT VIEW SERVER STATE TO [MyServerRole];
GRANT VIEW ANY DEFINITION TO [MyServerRole];
GRANT VIEW ANY DATABASE TO [MyServerRole];
在上面的示例中,我们使用GRANT语句向MyServerRole添加多个权限。我们可以在角色中添加以下内置权限:
ALTER ANY AVAILABILITY GROUP
ALTER ANY CONNECTION
ALTER ANY CREDENTIAL
ALTER ANY DATABASE
ALTER ANY ENDPOINT
ALTER ANY EVENT NOTIFICATION
ALTER ANY EVENT SESSION
ALTER ANY LINKED SERVER
ALTER ANY LOGIN
ALTER ANY SERVER AUDIT
ALTER ANY SERVER ROLE
ALTER RESOURCES
ALTER SETTINGS
CONTROL SERVER
CREATE AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION
CREATE ENDPOINT
CREATE TRACE EVENT NOTIFICATION
CREATE SERVER ROLE
CREATE LOGIN
CREATE CREDENTIAL
CREATE DATABASE
CREATE RESOURCE POOL
CREATE SERVER AUDIT
CREATE TRACE EVENT SESSION
CREATE ANY DATABASE
EXECUTE ANY EXTERNAL SCRIPT
SHUTDOWN
VIEW ANY DATABASE
VIEW ANY DEFINITION
VIEW SERVER STATE
使用上面的命令,我们可以向新服务器角色添加不同的权限。
1.3 将新角色分配给用户
我们已经成功创建了一个新的服务器角色并为其分配了一些权限。现在,我们需要将该角色分配给用户或其他角色。
要将新角色分配给用户,请执行以下命令:
USE [master];
GO
CREATE LOGIN [MyLogin] WITH PASSWORD=N'mypassword', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
GO
ALTER SERVER ROLE [MyServerRole] ADD MEMBER [MyLogin];
GO
在上面的命令中,我们首先使用CREATE LOGIN命令为新用户创建一个带有密码的登录账户。 然后,我们使用ALTER SERVER ROLE命令将新服务器角色添加到该用户的角色中。
2. 结论
在本文中,我们学习了如何创建新的服务器角色,并授予该角色所需的权限。确保为数据库安全性而操作的SQL Server角色管理很重要,因此建议您使用上面提到的方法来创建和管理服务器角色。