为便于管理数据库中的权限,SQL Server 提供了若干“角色”,这些角色是用于分组其他主体的安全主体。它们类似于 Microsoft Windows 操作系统中的组。数据库级角色的权限作用域为数据库范围。

SQL Server 中有两种类型的数据库级角色:数据库中预定义的“固定数据库角色”和您可以创建的“灵活数据库角色”。

固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份。但是,只有 db_owner 数据库角色的成员能够向 db_owner 固定数据库角色中添加成员。msdb 数据库中还有一些特殊用途的固定数据库角色。

您可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色。固定数据库角色的每个成员都可向同一个角色添加其他登录名。

重要提示:

请不要将灵活数据库角色添加为固定角色的成员。这会导致意外的权限升级。

下表显示了固定数据库级角色及其能够执行的操作。所有数据库中都有这些角色。

数据库级别的角色名称及说明

db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动,还可以删除数据库。

db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。向此角色中添加主体可能会导致意外的权限升级。

db_accessadmin 固定数据库角色的成员可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限。

db_backupoperator 固定数据库角色的成员可以备份数据库。

db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。

db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。

db_datareader 固定数据库角色的成员可以从所有用户表中读取所有数据。

db_denydatawriter 固定数据库角色的成员不能添加、修改或删除数据库内用户表中的任何数据。

db_denydatareader 固定数据库角色的成员不能读取数据库内用户表中的任何数据。

有关数据库级固定角色权限的特定信息,请参阅固定数据库角色的权限(数据库引擎)。

msdb 角色 msdb 数据库中包含下表显示的特殊用途的角色。

msdb 角色名称及说明

  • db_ssisadmin
  • db_ssisoperator
  • db_ssisltduser

这些数据库角色的成员可以管理和使用 SSIS。从早期版本升级的 SQL Server 实例可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的旧版本角色。有关详细信息,请参阅 使用 Integration Services 角色。

  • dc_admin
  • dc_operator
  • dc_proxy

这些数据库角色的成员可以管理和使用数据收集器。有关详细信息,请参阅数据收集器的安全性。

  • PolicyAdministratorRole

db_ PolicyAdministratorRole 数据库角色的成员可以对基于策略的管理策略和条件执行所有配置和维护活动。有关详细信息,请参阅使用基于策略的管理来管理服务器。

  • ServerGroupAdministratorRole
  • ServerGroupReaderRole

这些数据库角色的成员可以管理和使用注册的服务器组。有关详细信息,请参阅创建服务器组。

重要提示:

db_ssisadmin 角色和 dc_admin 角色的成员也许可以将其权限提升到 sysadmin。之所以会发生此权限提升,是因为这些角色可以修改 Integration Services 包,而 SQL Server 可以使用 SQL Server 代理的 sysadmin 安全上下文来执行 Integration Services 包。若要防止在运行维护计划、数据收集组和其他 Integration Services 包时出现此权限提升,请将运行包的 SQL Server 代理作业配置为使用拥有有限权限的代理帐户,或只将 sysadmin 成员添加到 db_ssisadmin 和 dc_admin 角色。

使用服务器级角色

下表说明了用于服务器级角色的命令、视图和函数。

功能 类型 说明

  • sp_helpdbfixedrole (Transact-SQL)   →       元数据   →       返回固定数据库角色的列表。
  • sp_dbfixedrolepermission (Transact-SQL)   →       元数据   →       显示固定数据库角色的权限。
  • sp_helprole (Transact-SQL)   →       元数据   →       返回当前数据库中有关角色的信息。
  • sp_helprolemember (Transact-SQL)   →       元数据   →       返回有关当前数据库中某个角色的成员的信息。
  • sys.database_role_members (Transact-SQL)        →       元数据   →       为每个数据库角色的每个成员返回一行。
  • IS_MEMBER (Transact-SQL)   →       元数据   →       指示当前用户是否为指定      Microsoft Windows 组或      Microsoft SQL Server 数据库角色的成员。
  • CREATE ROLE (Transact-SQL)   →       命令   →       在当前数据库中创建新的数据库角色。
  • ALTER ROLE (Transact-SQL)   →       命令   →       更改数据库角色的名称。
  • DROP ROLE (Transact-SQL)    →       命令从数据库中删除角色。
  • sp_addrole (Transact-SQL)   →       命令   →       在当前数据库中创建新的数据库角色。
  • sp_droprole (Transact-SQL)   →       命令   →       从当前数据库中删除数据库角色。
  • sp_addrolemember (Transact-SQL)   →       命令   →       为当前数据库中的数据库角色添加数据库用户、数据库角色、Windows      登录名或 Windows 组。
  • sp_droprolemember (Transact-SQL)   →       命令   →       从当前数据库的 SQL Server 角色中删除安全帐户。

public 数据库角色

每个数据库用户都属于 public 数据库角色。如果未向某个用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的 public 角色的权限

sql_server角色成员身份权限的更多相关文章

  1. RBAC----基于角色的访问权限控制

    RBAC是什么? 基于角色的权限访问控制(Role-Based Access Control) 作为传统访问控制(自主访问.强制访问)的有前景的代替 受到了广泛的关注. 在RBAC中,权限与角色相关联 ...

  2. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 角色成员功能的改进支持公司加入到角色

    我们公司有1万多个网点,每个网点都可以看成是一个公司,公司对不同的网点有不同的策略,商业逻辑,每个网点的人员也都是在不断变化,全国有接近10万从业人员,当我们设计好业务逻辑程序后,不可能因为这些人员的 ...

  3. 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)

    前言: shiro因为其简单.可靠.实现方便而成为现在最常用的安全框架,那么这篇文章除了会用简洁明了的方式讲一下基于spring的shiro详细配置和登录注销功能使用之外,也会根据惯例在文章最后总结一 ...

  4. Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  5. Yii中 RBAC(基于角色的访问控制权限)表结构原理分析

    这里有几个概念很重要,我简单用大白话说一下; 权限:就是指用户是否可以执行哪些操作. 如:小张可以发帖.回帖.浏览,小红只能回帖.浏览 角色:就是上面说的一组操作的集合. 如:高级会员有发帖.回帖.删 ...

  6. Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)

    在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权 ...

  7. RBAC(基于角色的访问控制权限)表结构

    Rbac 支持两种类,PhpManager(基于文件的) 和 DbManager(基于数据库的) 权限:就是指用户是否可以执行哪些操作 角色:就是上面说的一组操作的集合,角色还可以继承 在Yii2.0 ...

  8. Jenkins配置基于角色的项目权限管理--转

    本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Str ...

  9. [每日一题] OCP1z0-047 :2013-07-25 权限――角色与对象权限

    有疑问可以去itpub讨论:http://www.itpub.net/thread-1804842-1-1.html 按题意,操作如下: 1.创建一个角色r1 sys@OCM> create r ...

随机推荐

  1. cocos-lua基础学习(四)quick层封装后的目录结构

    命名空间 cc cocos2d核心类 ccb cocosbuilder扩展 ccs cocostudio扩展 cocos2d目录结构 bitExtend.lua cocos2d.lua cocos2d ...

  2. 史上最强网推案例,没有之一【ZW团队实战经典】

    ZW团队认为,互联网本质只有两个字:颠覆. ZW网络推广团队,是国内首个教父级网络营销团队,自1997年以来,先后参与操盘多个重大互联网项目,服务过超过150家国际500强客户,是微软公司首家官方认证 ...

  3. SNMP学习笔记之SNMPWALK 命令

    SNMPWALK是一个通过SNMP GET-NEXT类型PDU,实现对目标AGENT的某指定MIB分支信息进行完整提取输出的命令工作. 命令行: snmpwalk [选项] agent [oid] 选 ...

  4. 常用php操作redis命令整理(四)SET类型

    SADD 将一个或多个member元素加入到集合key当中.(从左侧插入,最后插入的元素在0位置),集合中已经存在TK 则返回false,不存在添加成功 返回true <?php var_dum ...

  5. Ubuntu安装配置rclone(Onedrive应用)

    rclone安装 命令行安装 脚本安装 curl https://rclone.org/install.sh | sudo bash # 或者 curl https://rclone.org/inst ...

  6. PhpStorm提高效率的使用方法及设置(快捷键)

    原文链接:https://my.oschina.net/chunto/blog/262954 快捷键: CTRL + D  复制当前行到下一行 或 复制选中内容到选中内容之后 CTRL + Y  删除 ...

  7. Mac下将C程序创建为动态链接库再由另一个C程序调用

    写C的时候需要调用之前的一个C程序,想用动态链接库的方式.Mac下的动态链接库是dylib,与Linux下的.os或Windows下的.dll不同.由于之前没有接触过,所以翻了大量的博客,然而在编译过 ...

  8. Web漏洞挖掘之网络信息探测

    我们在搜集目标系统信息的时候主要需要搜集的是:目标服务器系统信息(IP,服务器所用系统等):目标网站子域名:目标网站(服务器)的开放端口:目标域名信息.目标网站内容管理系统(CMS)等. 一.子域名搜 ...

  9. MVC webapi,Action的分别拦截器

    继承Controller,ApiController的拦截继承的接口不一样 webapi的拦截器:(继承System.Web.Http) using System; using System.Coll ...

  10. 【软件是否安装】linux下如何查看某软件是否已安装

    因为Linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa ...