原文出处: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. 打开登录的属性窗口,选择【安全对象】,然后可以在这里显式授予服务器权限,也可以查看当前有效的权限。

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 = 'Fred';

原理:

如果需要授予相同的权限给多个登录,考虑创建一个用户自定义服务器角色(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 = '6eRt5(K%yTR';
--会在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

Chapter 2 User Authentication, Authorization, and Security(6):服务器权限授予粒度的更多相关文章

  1. Chapter 2 User Authentication, Authorization, and Security(9):防止登录名和用户查看元数据

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

  2. Chapter 2 User Authentication, Authorization, and Security(11):在已还原的数据库中修正登录映射错误

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

  3. Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库

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

  4. Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户

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

  5. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐户管理权限

    原版的:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题文件夹:http://blog.csdn.net/dba_huangzj ...

  6. Chapter 2 User Authentication, Authorization, and Security(3):保server避免暴力袭击

    原版的:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题文件夹:http://blog.csdn.net/dba_huangzj ...

  7. Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色

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

  8. Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色

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

  9. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限

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

随机推荐

  1. Linux系统格式化新磁盘并挂载分区

    Linux系统格式化新磁盘并挂载分区 在虚拟机的设置界面中,我们可以选择添加硬盘 添加好硬盘后,我们输入命令fdisk -l 看到有一个未经分区的硬盘 Fdisk命令编辑这个硬盘 输入n创建分区,p选 ...

  2. git使用之错误分析及解决(持续更新)

    错误一: 使用 $ git push -u origin master 出现如下错误: error: src refspec master does not match any. error: fai ...

  3. JavaScript 流程语句知识脑图

  4. 0426html常用标签属性

    一.基础语法 标签:作为网页的最小单元 1.双标签 内容的容器 2.单标签 控制性内容 注释    每一个模块都要写清楚注释 二.基本结构 <!DOCTYPE html>          ...

  5. Bootstrap3 表单-输出内联表单

    为 <form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件.只适用于视口(viewport)至少在 768px 宽度时(视口宽 ...

  6. Dynamics CRM2016 Web Api之查询查找字段的相关属性

    之前有篇博文介绍了如何获取查找字段的name值(跳转),本篇在此基础上再延伸下,实现的效果类似于EntityReference,可以取到查找字段的id,name,localname. 这里我以客户实体 ...

  7. MySQL系列教程(四)

    文件打开数(open_files) 我们现在处理MySQL故障时,发现当Open_files大于open_files_limit值时,MySQL数据库就会发生卡住的现象,导致Nginx服务器打不开相应 ...

  8. 我为什么放弃使用MyBatis3的Mapper注解

    最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键id到实体b ...

  9. Android开发学习之路--性能优化之布局优化

      Android性能优化方面也有很多文章了,这里就做一个总结,从原理到方法,工具等做一个简单的了解,从而可以慢慢地改变编码风格,从而提高性能. 一.Android系统是如何处理UI组件的更新操作的 ...

  10. hibernate5学习之理解数据库级并发

    本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50551741 当我们谈起隔离的时候,我们总是假定两个物体直接要么隔 ...