SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。 用户自定义服务器角色是用SQL Server Management Studio(SSMS)和T-SQL代码创建的。 你可以添加服务器级别的主体,例如为在SQL Server 2012及后续版本中的用户自定义服务器角色创建SQL Server登录,Windows账户和Windows分组。
然后,你可以显式指定这些成员的权限。 可以为一个用户自定义服务器角色赋予哪些权限? 执行以下查询可以列出在SQL Server 2012及后续版本中授予一……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属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角色验证权限并在动态管理视图中进行查看。
作者
翻译
相关推荐
-
TT百科:Microsoft SQL Server Management Studio (SSMS)
SSMS提供了配置,管理和管理Microsoft SQL Server实例的工具,并汇集了一系列图形和可视化设计工具和丰富的脚本编辑器,以简化与SQL Server的工作。
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
升级到SQL Server 2012的七个理由
微软建议尽快将数据库升级到最新版本。在本文中,我们就来列举七个SQL Server 2012的功能特性,它将成为你升级的主要动力。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。