SQL Server中的角色(服务器级别和数据库级别角色)
参考文献
服务器级别角色
为帮助您管理服务器上的权限,SQL Server 提供了若干角色。这些角色是用于对其他主体进行分组的安全主体。 服务器级角色的权限作用域为服务器范围。 (“角色”类似于 Windows 操作系统中的“组”。)
提供固定服务器角色是为了方便使用和向后兼容。 应尽可能分配更具体的权限。
SQL Server 提供了九种固定服务器角色。 无法更改授予固定服务器角色的权限。 从 SQL Server 2012 开始,您可以创建用户定义的服务器角色,并将服务器级权限添加到用户定义的服务器角色。
您可以将服务器级主体(SQL Server 登录名、Windows 帐户和 Windows 组)添加到服务器级角色。 固定服务器角色的每个成员都可以将其他登录名添加到该同一角色。 用户定义的服务器角色的成员则无法将其他服务器主体添加到角色。
下表显示了服务器级的固定角色及其权限。
服务器级的固定角色 |
说明 |
||
---|---|---|---|
sysadmin |
sysadmin 固定服务器角色的成员可以在服务器中执行任何活动。 |
||
serveradmin |
serveradmin 固定服务器角色的成员可以更改服务器范围内的配置选项并关闭服务器。 |
||
securityadmin |
securityadmin 固定服务器角色的成员管理登录名及其属性。 他们可以 GRANT、DENY 和 REVOKE 服务器级权限。 他们还可以 GRANT、DENY 和 REVOKE 数据库级权限(如果他们具有数据库的访问权限)。 此外,他们还可以重置 SQL Server 登录名的密码。
|
||
processadmin |
processadmin 固定服务器角色的成员可以终止在 SQL Server 实例中运行的进程。 |
||
setupadmin |
setupadmin 固定服务器角色的成员可以添加和删除链接服务器。 |
||
bulkadmin |
bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。 |
||
diskadmin |
diskadmin 固定服务器角色用于管理磁盘文件。 |
||
dbcreator |
dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。 |
||
public |
每个 SQL Server 登录名均属于 public 服务器角色。 如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该用户将继承授予该对象的 public 角色的权限。当您希望该对象对所有用户可用时,只需对任何对象分配 public 权限即可。 您无法更改 public 中的成员关系。
|
数据库级别的角色
为便于管理数据库中的权限,SQL Server 提供了若干“角色”,这些角色是用于对其他主体进行分组的安全主体。 它们类似于 Microsoft Windows 操作系统中的组。 数据库级角色的权限作用域为数据库范围。
SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”。
固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。 db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。 但是,只有db_owner 数据库角色的成员能够向 db_owner 固定数据库角色中添加成员。 msdb 数据库中还有一些特殊用途的固定数据库角色。
您可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色。 固定数据库角色的每个成员都可向同一个角色添加其他登录名。
重要提示 |
---|
请不要将灵活数据库角色添加为固定角色的成员。 这会导致意外的权限升级。 |
下表显示了固定数据库级角色及其能够执行的操作。 所有数据库中都有这些角色。
数据库级别的角色名称 |
说明 |
---|---|
db_owner |
db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。 |
db_securityadmin |
db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。 向此角色中添加主体可能会导致意外的权限升级。 |
db_accessadmin |
db_accessadmin 固定数据库角色的成员可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限。 |
db_backupoperator |
db_backupoperator 固定数据库角色的成员可以备份数据库。 |
db_ddladmin |
db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。 |
db_datawriter |
db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。 |
db_datareader |
db_datareader 固定数据库角色的成员可以从所有用户表中读取所有数据。 |
db_denydatawriter |
db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。 |
db_denydatareader |
db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。 |
msdb 角色
msdb 数据库中包含下表显示的特殊用途的角色。
msdb 角色名称 |
说明 |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
这些数据库角色的成员可以管理和使用 SSIS。 从早期版本升级的 SQL Server 实例可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的旧版本角色。 有关详细信息,请参阅 Integration Services 角色(早期 SSIS 服务)。 |
dc_admin dc_operator dc_proxy |
这些数据库角色的成员可以管理和使用数据收集器。 有关详细信息,请参阅数据收集。 |
PolicyAdministratorRole |
db_ PolicyAdministratorRole 数据库角色的成员可以对基于策略的管理策略和条件执行所有配置和维护活动。 有关详细信息,请参阅使用基于策略的管理来管理服务器。 |
ServerGroupAdministratorRole ServerGroupReaderRole |
这些数据库角色的成员可以管理和使用注册的服务器组。 |
dbm_monitor |
在数据库镜像监视器中注册第一个数据库时在 msdb 数据库中创建。 在系统管理员为 dbm_monitor 角色分配用户之前,该角色没有任何成员。 |
重要提示 |
---|
db_ssisadmin 角色和 dc_admin 角色的成员可以将其特权提升为 sysadmin。 由于这些角色可以修改 Integration Services 包,而 SQL Server 使用 SQL Server 代理的 sysadmin 安全上下文可以执行 Integration Services 包,因此可以实现特权提升。 若要防止在运行维护计划、数据收集组和其他 Integration Services 包时提升特权,请将运行包的 SQL Server 代理作业配置为具有有限特权的代理帐户,或仅将 sysadmin 成员添加到 db_ssisadmin 和 dc_admin 角色。 |
SQL Server中的角色(服务器级别和数据库级别角色)相关推荐
- sql server中创建链接服务器图解教程
转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...
- 如何在SQL Server中发现和处理孤立的数据库用户
介绍 (Introduction) Context 语境 As SQL Server database administrators, we should all know that, most of ...
- sql azure 语法_Azure SQL Server中的CREATE DATABASE语句概述
sql azure 语法 In this article, we will review CREATE DATABASE statement in the Azure SQL database wit ...
- SQL Server中TEXT类型操作
SQL Server中TEXT类型字段值在数据库中追加字符串方法 对text类型字段值进行追加更新的操作,一开始用了简单的update语句试了试,有错误,原来text.ntext类型的字段不能和 va ...
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系**
1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据库角色对应的是权限. 3.一个用户对应一个数据库角色. 4.登录名与数据库用户 ...
- SQL Server 创建用户时报错:15023 用户,组或角色'XXX'在当前数据库中已存在
今天遇到了这个问题,将找到的解决方案做了个整理,如下: 一.原因分析 sql server数据库从一台机转移到另一台机时,登录名没转移,或者只删除了登录名.这种情况将会产生"孤立用户&quo ...
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因...
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
- 翻译:SQL Server中的索引内部结构:到SQL Server索引级别10的阶梯。
SQL Server中的索引内部结构:到SQL Server索引级别10的阶梯. 大卫•杜兰特2012/01/20 该系列 本文是楼梯系列的一部分:SQL Server索引的阶梯. 索引是数据库设计的 ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
最新文章
- linux打理ftp用户,Linux中如何添加/删除FTP用户并设置权限
- RabbitMQ-从基础到实战(3)— 消息的交换(上)
- 深度学习(17)TensorFlow高阶操作六: 高阶OP
- 06Prism WPF 入门实战 - Log控件库
- vscode 推荐premiter_自用VSCode优质插件推荐
- 支付弹出窗口被拦截解决办法
- [翻译] SSKeychain
- 黑马Java学科资料
- android安全风险分析,Android安全检测报告,等保测评过不了,提示风险
- 新办的卡为什么显示无服务器,为什么插入卡后显示无服务,有时有有时又没有?...
- ncre计算机职业英语,NCRE计算机职业英语一级考试样卷
- 比较电路中的正相反馈电阻作用
- 如何垂直居中对齐CSS[转载]
- 去哪儿网支付系统架构演进
- 使用opencv-python和dlib实现的简单换脸程序
- 删除磁盘上的表空间后再删除数据库中的表空间——ORA-01549:表空间非空,请使用including contents选项
- value iteration和Q-learning算法
- 再也不用找图源了!完美替代奥维地图,支持查看全球高清卫星地图3D地形
- 【C++修行之路】类和对象
- 微信小程序生成太阳码 报40071 踩坑记录
热门文章
- 理解jmeter聚合报告
- 在Centos 6.x 下yum安装php 5.5
- MySQL字符串函数
- [禅悟人生]拿得起放得下, 才是真幸福
- Web 开发中很实用的10个效果【附源码下载】
- QT自定义窗口插件在QT Creator的应用
- 闲话网名之“jrfly331”
- oracle将213变成123,oracle 转换函数
- python搜索关键词自动提交订单_Python批量获取淘宝相关搜索和下拉框关键词
- 函数 —— strtok() 例如:Fred male 25,John male 62,Anna female 16两层循环