用T-SQL在SQL Server 2012中创建用户自定义角色

日期: 2014-08-27 作者:Ashish Mehta翻译:Ranma 来源:TechTarget中国 英文

SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。 用户自定义服务器角色是用SQL Server Management Studio(SSMS)和T-SQL代码创建的。 你可以添加服务器级别的主体,例如为在SQL Server 2012及后续版本中的用户自定义服务器角色创建SQL Server登录,Windows账户和Windows分组。

然后,你可以显式指定这些成员的权限。 可以为一个用户自定义服务器角色赋予哪些权限? 执行以下查询可以列出在SQL Server 2012及后续版本中授予一……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。

用户自定义服务器角色是用SQL Server Management Studio(SSMS)和T-SQL代码创建的。

你可以添加服务器级别的主体,例如为在SQL Server 2012及后续版本中的用户自定义服务器角色创建SQL Server登录,Windows账户和Windows分组。然后,你可以显式指定这些成员的权限。

可以为一个用户自定义服务器角色赋予哪些权限?

执行以下查询可以列出在SQL Server 2012及后续版本中授予一个用户自定义服务器角色的权限。

USE master
GO

SELECT * FROM sys.fn_builtin_permissions(DEFAULT)            
             WHEREclass_desc IN ('ENDPOINT','LOGIN','SERVER','AVAILABILITY GROUP','SERVERROLE')            
              ORDERBY class_desc, permission_name
GO

创建SQL Server登录

建立一个新的用户自定义服务器角色的首要步骤是创建或添加一个新的登录,然后它便可以分配给一个新用户自定义服务器角色。你可以通过执行下面的T-SQL查询来创建一个新的SQL Server登录。

USE master
GO

CREATE LOGIN [Brinto] WITH PASSWORD = 'Brint0@1234',
               DEFAULT_DATABASE= [master],
               CHECK_EXPIRATION=OFF,
               CHECK_POLICY=OFF
GO

在SSMS中创建用户自定义SQL Server角色

在登录成功创建之后,接下来的步骤就是用SQL Server Management Studio(SSMS)或T-SQL代码创建一个用户自定义SQL Server角色。用SSMS连接至一个SQL Server2012实例并打开ObjectExplorer。

展开Security文件夹并右击ServerRoles文件夹,然后从下拉菜单中选择New Server Role… 。

New Server Role窗口的General页面中,输入合适的服务器角色名称。在Owner方框中,输入将要拥有此NewServer Role的服务器主体。在Securable下面,选择一个或多个服务器级别的安全对象。在选择了一个安全对象后,你便可以赋予或收回此安全实体的权限。

Permissions: Explici下的方框中,勾选复选框为已选的安全实体的服务器角色赋予GRANT,WITH GRANT 或 DENY权限。在这种情况下,我为此服务器角色选择了ALTERTRACE,CONNECT SQL,CREATE ANY DATABASE,VIEWANY DATABASE,VIEW ANY DEFINITION和VIEWSERVER STATE权限。


1: 在General页面上为新服务器角色选择权限

Members页面上,用Add… 按钮来为此新服务器角色添加SQL Server登录,Windows账户以及Windows群组。在这个演示中,我选择新添加的SQL Server登录。

2用Members页面为新服务器角色添加新的角色成员。

在Members页面上,勾选复选框以便让新的用户自定义服务器角色成为固定服务器角色的一个成员。最后,点击OK在SQL Server 2012中完成创建一个用户自定义服务器角色。

3: 在Members页面上创建用户自定义服务器角色。

在成功创建用户自定义服务器角色之后,就可以在Server Roles下找到它了。

4: 新的服务器角色在Server Roles文件夹下。

用T-SQL查询创建用户自定义SQL Server角色

要用T-SQL创建一个用户自定义SQL Server角色,需执行以下T-SQL代码。

USE [master]
GO

CREATE SERVER ROLE [JuniorDBA] AUTHORIZATION [sa]
GO

ALTER SERVER ROLE [JuniorDBA] ADD MEMBER [Brinto]
GO

用T-SQL查询为用户自定义SQL Server角色授予权限

执行以下T-SQL代码为以上用T-SQL代码创建的用户自定义服务器角色添加相应权限。我选择给此示例角色赋予ALTERTRACE,CONNECT SQL,CREATE ANY DATABASE,VIEWANY DATABASE,VIEW ANY DEFINITION和VIEWSERVER STATE等权限。

USE [master]
GO

GRANT ALTER TRACE TO [JuniorDBA];
GRANT CONNECT SQL TO [JuniorDBA];
GRANT CREATE ANY DATABASE TO [JuniorDBA];
GRANT VIEW ANY DATABASE TO [JuniorDBA];
GRANT VIEW ANY DEFINITION TO [JuniorDBA];
GRANT VIEW SERVER STATE TO [JuniorDBA];

验证权限

通过在一个新建的查询窗口中执行下面的T-SQL查询来快速验证为新创建的服务器角色分配的权限。因为用户有VIEW SERVERSTATE权限,所以你可以从动态管理视图中获取结果。

SELECT SUSER_SNAME()
EXECUTE AS LOGIN = 'Brinto'

SELECT SUSER_SNAME()
SELECT * FROM sys.dm_os_windows_info

REVERT
SELECT SUSER_SNAME()

5为新创建的SQL Server角色验证权限并在动态管理视图中进行查看。



 

翻译

Ranma
Ranma

相关推荐