原版的:http://blog.csdn.net/dba_huangzj/article/details/39639365。专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

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

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

前言:

数据库层级的角色同意把数据库权限像server级别角色一样组合管理。你能够配置固定server角色,创建用户自己定义角色等。

实现:

1. 在SSMS中,进入某个数据库的节点。点击【安全性】。然后点击【数据库角色】节点:

固定角色 描写叙述
db_accessadmin db_accessadmin 固定数据库角色的成员能够为 Windows 登录名、Windows 组和 SQL Server 登录名加入或删除数据库訪问权限。

db_backupoperator db_backupoperator 固定数据库角色的成员能够备份数据库。
db_datareader db_datareader 固定数据库角色的成员能够从全部用户表中读取全部数据。

db_datawriter db_datawriter 固定数据库角色的成员能够在全部用户表中加入、删除或更改数据。
db_denydatareader db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的不论什么数据。

db_denydatawriter db_denydatawriter 固定数据库角色的成员不能加入、改动或删除数据库内用户表中的不论什么数据。

db_owner db_owner 固定数据库角色的成员能够运行数据库的全部配置和维护活动,还能够删除数据库。

db_securityadmin db_securityadmin 固定数据库角色的成员能够改动角色成员身份和管理权限。

db_ddladmin db_ddladmin 固定数据库角色的成员能够在数据库中运行不论什么数据定义语言 (DDL) 命令。

2. 假设加入成员到某个角色,能够双击这个角色,在【属性】页的【此角色的成员】中加入:

3. 也能够使用T-SQL实现:

ALTER ROLE db_accessadmin ADD MEMBER test;

4. 假设须要创建自己定义角色。能够右键【数据库角色】节点然后选择【新建数据库角色】,输入角色名和拥有者,用于控制这个角色的全部权限。建议使用dbo或者留空。

5. 不要让GUI界面混淆了你,在【常规】页,有两个listboxes,第一个是【此角色拥有的架构】,列出了这个数据库的架构,在后面介绍。

6. 如今忘记第一个listbox,并到第二个listbox,【此角色的成员】。能够加入角色成员。

7. 然后到【安全对象】页,在这里能够选择安全对象,也能够用T-SQL实现:

USE marketing;
CREATE ROLE ProspectManager;
ALTER ROLE ProspectManager ADD MEMBER Fred;
GRANT INSERT, UPDATE, DELETE, SELECT ON dbo.Prospect TO ProspectManager;
GRANT INSERT, SELECT ON dbo.Contact TO ProspectManager;

原理:

固定角色同意授权全局权限到数据库的全部对象中,大部分时间里面,不须要使用db_datareader/db_datawriter。由于权限限制太少,而db_denydatareader/db_denydatawriter却非常实用,能够限制用户不同意訪问表、视图。

全部用户都属于public数据库角色的成员,不能被移除,而db_owner角色的成员在数据库中以dbo用户的形式出现。

能够使用以下语句查看某个登录名是否属于某个数据库角色的成员:

SELECT IS_ROLEMEMBER ( 'ProspectManager', 'fred' );

返回1的话代表Fred是ProspectManager角色的成员。

很多其它:

假设使用了WITH GRANT OPTION授权到Windows组中,那么这个角色的成员选哟在授权时使用ASkeyword。

USE marketing;
CREATE USER fred WITHOUT LOGIN;
CREATE USER mary WITHOUT LOGIN;
GO
CREATE ROLE contactReaders;
ALTER ROLE contactReaders ADD MEMBER fred;
GO
GRANT SELECT ON dbo.contact TO contactReaders WITH GRANT OPTION;
GO
EXECUTE AS USER = 'fred';
-- this does not work
GRANT SELECT ON dbo.contact TO mary;
-- this works
GRANT SELECT ON dbo.contact TO mary AS contactReaders;
REVERT;

当Fred使用GRANT命令。必须使用AS contactReaders。

MSDB角色:

MSDB由于其重要性,角色的数量和功能都和常规的库不一样:

角色 描写叙述
db_ssisadmin 能够作为管理员管理server上的SSIS。

db_ssisoperator 能够查看全部SSIS包。可是不能导入或改动。
db_ssisltduser 能够查看和运行属于它自己的SSIS包。

dc_admin 能够管理data collector collection集和属性,又有全部dc_operator的权限。

dc_operator 能够读和更新DC collection set和属性。
dc_proxy 能够读取DC collection sets和相应属性。
PolicyAdministratorRole 能够运行基于策略的管理上全部配置和维护操作。
ServerGroupAdministratorRole 能够注冊和使用中央管理server组。
ServerGroupReaderRole 能够连接中央管理server组。
dbm_monitor 同意监控数据库镜像。

关于SSIS角色和Data Collector 安全性,能够查看以下文章:

下一个:http://blog.csdn.net/dba_huangzj/article/details/39927713

Chapter 3 Protecting the Data(3):创建和使用数据库角色的更多相关文章

  1. Chapter 3 Protecting the Data(4):创建和使用应用程序角色

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

  2. Chapter 3 Protecting the Data(1):理解权限

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

  3. Chapter 3 Protecting the Data(2):分配列级权限

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

  4. Oracle Data Guard 创建物理Standby数据库

    创建物理备库 机器名                    a1                    a2                    IP:                    192 ...

  5. SQLServer之创建用户定义的数据库角色

    创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...

  6. C# step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型

    C# 2012 step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型 本章内容 声明一个枚举类型 创建并使用一个枚举类型 声明一个结构类型 创建并使用一个结构类型 解释结 ...

  7. 17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files

    17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files 如果数据库是大的, 复制raw 数据文 ...

  8. 使用WCF Data Service 创建OData服务

    使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...

  9. 【tmos】spring data jpa 创建方法名进行简单查询

    参考链接 spring data jpa 创建方法名进行简单查询:http://www.cnblogs.com/toSeeMyDream/p/6170790.html

随机推荐

  1. 批处理程序:自动上传FTP,再登陆linux服务器执行更新

    ----转载请注明出处:博客园-邦邦酱好 最近在学批处理程序,一直没找到能够结合工作来使用它的地方,前几天测试服务端的时候突然想到可以这样做: 写一个批处理程序,自动通过FTP上传软件包到指定的地方, ...

  2. poj 2992 Divisors 整数分解

    设m=C(n,k)=n!/((n-k)!*k!) 问题:求m的因数的个数 将m分解质因数得到 p1有a1个 p2有a2个 .... 因为每一个质因数能够取0~ai个(所有取0就是1,所有取ai就是m) ...

  3. Spring in action(Spring实战) 第四版中文翻译

    第一部分 Spring核心 Spring提供了非常多功能,可是全部这些功能的基础是是依赖注入(DI)和面向方面编程(AOP). 第一章 Springing into action 本章包含: Spri ...

  4. POJ1201 差分约束

    给定ai,bi, ci 表示区间[ai,bi]内至少有ci个点, 要求对于所有给定的ai,bi,ci,  至少多少个点才能满足题目的条件 重做这一题学到的一点是, 可以设变量来表示一些东西,然后才能找 ...

  5. python学习笔记之十:文件和素材

    这里将介绍函数和对象--文件和流,让你在程序调用期间存储数据,并且可以处理来自其他程序的数据. 一. 打开文件 1.1 open函数 open函数用来打开文件,语法如下:open(name,[.mod ...

  6. Mega的简单使用

    Table of Contents 1 Mega画树的简单应用 2 fas格式文件的准备 3 用生成的.meg画树 4 生出树的处理 4.1 修改内容,添加标注 4.2 导出 4.3 后面随着学习的进 ...

  7. Qt数据类型转换

    把QString转换为double类型 方法1.QString str="123.45"; double val=str.toDouble(); //val=123.45 方法2. ...

  8. [原创]如何编写多个阻塞队列连接下的多生产者多消费者的Python程序

    平常在写程序时,往往会遇到一个需求:在程序的多个阶段都会出现阻塞的可能,因此,这多个阶段就需要并发执行. Python的多线程有一个特点,就是不允许从外部结束一个运行中的线程,这给我们编写代码时带来了 ...

  9. JavaScript模式读书笔记 文章3章 文字和构造

    1.对象字面量     -1.Javascript中所创建的自己定义对象在任务时候都是可变的.能够从一个空对象開始,依据须要添加函数.对象字面量模式能够使我们在创建对象的时候向其加入函数.       ...

  10. Error 56: The Cisco Systems, Inc. VPN Service has not been started(Cisco VPN在Vista下出现Error 56的解决办法)

    Error 56: The Cisco Systems, Inc. VPN Service has not been started(Cisco VPN在Vista下出现Error 56的解决办法) ...