Heim >Datenbank >MySQL-Tutorial >Chapter2UserAuthentication,Authorization,andSecurity(6):

Chapter2UserAuthentication,Authorization,andSecurity(6):

WBOY
WBOYOriginal
2016-06-07 16:01:421159Durchsuche

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38867489,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349 未经作者同意,任何人不得以原创形式发布,也不得已用于商业用途,本人不负责任何法律责任。 前一篇:http://b

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38867489,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

前一篇:http://blog.csdn.net/dba_huangzj/article/details/38844999

前言:

在SQL Server 2005之前,只有通过添加登录到固定服务器角色,才能获取管理权限。SQL Server 2005引入了一套服务器粒度权限,允许你定义一套严密的权限给服务器级别的登录。

实现:

1. 打开登录的属性窗口,选择【安全对象】,然后可以在这里显式授予服务器权限,也可以查看当前有效的权限。

image

image

2. 如果想用T-SQL实现,可以用下面的语句:

GRANT <SERVER PERMISSION> TO <login>; 
--例子:: 
GRANT ALTER ANY LOGIN TO Fred;

注意,不能对sa和你自己进行grant/revoke/deny操作。

3. 可以使用下面语句查看已经被授予的服务器权限:

SELECT * FROM sys.server_permissions;
--例子:查看某个登录或服务器角色所拥有的服务器已授予权限:
SELECT p.class_desc, p.permission_name, p.state_desc 
FROM sys.server_permissions p 
JOIN sys.server_principals s ON  p.grantee_principal_id = 
s.principal_id 
WHERE s.name = &#39;Fred&#39;;

原理:

如果需要授予相同的权限给多个登录,考虑创建一个用户自定义服务器角色(2012引入,将在后续章节介绍)。禁用sysadmin成员的权限是无效的,因为权限检查会忽略这部分内容。

更多:

允许登录运行SQL Trace:

SQL Trace是一个服务器功能,通常使用SQL Profiler工具定义和执行,在SQL Server 2005之前,仅sysadmin服务器角色的成员才能运行Trace,从2005开始,可以使用下面语句对非sysadmin登录授权运行:

GRANT ALTER TRACE TO [Fred];

对于一些敏感信息如密码,SQL Trace会自动屏蔽,比如:

CREATE LOGIN Fred WITH PASSWORD = &#39;6eRt5(K%yTR&#39;;
--会在SQL:BatchCompleted事件中显示为:
--*CREATE LOGIN-------------------------------

除了SQL Trace,2008引入的扩展事件(Extended Events,微软希望用这个功能替代SQL Trace),也需要授予ALTER ANY EVENT SESSION权限。

这里有一个PDF文档,描述了2008R2和2012的服务器和数据库级别权限图:

http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5710.Permissions_5F00_Poster_5F00_2008_5F00_R2_5F00_Wiki.pdf

但是要提醒一下,这个是海报级别的,看起来比较费劲。

下一篇:http://blog.csdn.net/dba_huangzj/article/details/38895357

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:MySQL数据库备份(1)Nächster Artikel:MySQL数据库备份(3)