Chapter 3 Protecting the Data(3):创建和使用数据库角色
未经作者同意,不论什么人不得以“原创”形式公布,也不得已用于商业用途。本人不负责不论什么法律责任。
前一篇: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 安全性,能够查看以下文章:
- Integration Services Roles: http://msdn.microsoft.com/en-us/library/ms141053.aspx
- Data Collector Security: http://msdn.microsoft.com/en-us/library/bb630341.aspx
下一个:http://blog.csdn.net/dba_huangzj/article/details/39927713
Chapter 3 Protecting the Data(3):创建和使用数据库角色的更多相关文章
- Chapter 3 Protecting the Data(4):创建和使用应用程序角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39927713,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 3 Protecting the Data(1):理解权限
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39548665,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 3 Protecting the Data(2):分配列级权限
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39577861,专题目录:http://blog.csdn.net/dba_huangzj ...
- Oracle Data Guard 创建物理Standby数据库
创建物理备库 机器名 a1 a2 IP: 192 ...
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- C# step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型
C# 2012 step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型 本章内容 声明一个枚举类型 创建并使用一个枚举类型 声明一个结构类型 创建并使用一个结构类型 解释结 ...
- 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 数据文 ...
- 使用WCF Data Service 创建OData服务
使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...
- 【tmos】spring data jpa 创建方法名进行简单查询
参考链接 spring data jpa 创建方法名进行简单查询:http://www.cnblogs.com/toSeeMyDream/p/6170790.html
随机推荐
- Java--调试--单步调试,断言,单元测试
单步调试:主要查看变量内容的变化 1.设置断点位置,设置在可能出现问题的代码 2.以Debug as方式运行 程序 3.F5 --> step into 进入方法内部进行调试 F6 ...
- Java的wait(), notify()和notifyAll()使用心得(转)
本篇文章是对java的 wait(),notify(),notifyAll()进行了详细的分析介绍,需要的朋友参考下wait(),notify()和notifyAll()都是java.lang.Obj ...
- 关于bind函数和connect函数的测试结论
1. 一般客户端不用绑定,系统给你自动分配(有些ip不是固定的,bind也不是一个好方法):而服务器需要绑定,因为需要给客户端一个众所周知的固定的地址: 2. 关于bind错误,可以用WSAGetLa ...
- USACO sprime
/* ID:kevin_s1 PROG:sprime LANG:C++ */ //N = 1仅仅可能为2,3,5,7.N > 1仅仅可能为1,3,7.9. N = i,到N = i + 1递推假 ...
- 命令模式(CommandPattern)
今天主要学习命令模式,java获得创意.其他屏幕教程.这里总结一下命令模式更重要. 刚开始以为命令模式是非常罕见的外观,但研究发现,他与同样单身完成.有设计模式最简单的集中模式. 象,然后其它的类直接 ...
- 用MODELLER构建好模型后对loop区域进行自动的优化过程
一:对生成的模型的所有的loop区域进行优化 # Homology modeling by the automodel class from modeller import * from modell ...
- LNMP 免安装包
LNMP(Linux-Nginx-Mysql-PHP)可爱的黄金搭档,不过配置并不轻易,而我平常用于测试环境又经常用到,所以打包了这么一个免安装的LNMP包,内置常用库和模块,以及基本的优化设置,这样 ...
- CentOS6.5 Nginx优化编译配置[续]
继续上文CentOS6.5 Nginx优化编译配置本文记录有关Nginx系统环境的一些细节设置,有关Nginx性能调整除了配置文件吻合服务器硬件之前就是关闭不必要的服务.磁盘操作.文件描述符.内核调整 ...
- Java 中泛型的全面解析(转)
Java泛型(generics) 是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在J ...
- sensor调试过程HAL层数据不能被转移到app
最近调试e-compass传感器,我遇到了一个奇怪的问题,驱动器正常报告数据.但该数据到HAL后该层已经无法上传app. 经debug,我发现这是一个供应商派的代码存在bug,open的fd没有设置N ...