6.5 数据库角色

6.5 数据库角色

6.5.1 数据库角色

  为了便于管理数据库中的权限,可以在数据库范围内设置数据库角色。

6.5.2 固定数据库角色

  SQL Server 预定义了以下数据库角色。

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

db_backupoperator 成员可以备份数据库。
db_datareader 成员可以从所有用户表中读取所有数据。
db_datawriter 成员可以在所有用户表中添加、删除或更改数据。
db_ddladmin  成员可以在数据库中运行任何数据定义语言 (DDL) 命令。
db_denydatareader  成员不能读取数据库内用户表中的任何数据。
db_denydatawriter  成员不能添加、修改或删除数据库内用户表中的任何数据。
db_owner 成员可以执行数据库的所有配置和维护活动,还可以删除数据库。
db_securityadmin 成员可以修改角色成员身份和管理权限。向此角色中添加主体可能会导致意外的权限升级。
public 每个数据库用户都属于public 数据库角色。如果未向某个用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的public 角色的权限。

6.5.3 用户定义的数据库角色

  在 SQL Server 中还可以创建灵活的数据库角色。

  数据库角色的名称可以包含 1 到 128 个字符,包括字母、符号和数字。数据库角色的名称不能包含反斜杠(“\”)、不能为 NULL 或空字符串。

  可以同时为新角色指定一个“所有者”。如果未指定所有者,则执行当前操作的数据库用户(例如:dbo)将拥有该角色。

  T-SQL 语法示例如下:


CREATE ROLE [DbRole1]

CREATE ROLE [DbRole2] AUTHORIZATION [dbo]

  要求对数据库具有 CREATE ROLE 权限或者在 db_securityadmin 固定数据库角色中具有成员身份。使用 AUTHORIZATION 选项时,还需要具有下列权限:

若要将角色的所有权分配给另一个用户,则需要对该用户具有 IMPERSONATE 权限。

若要将角色的所有权分配给另一个角色,则需要具有被分配角色的成员身份或对该角色具有 ALTER 权限。

若要将角色的所有权分配给应用程序角色,则需要对该应用程序角色具有 ALTER 权限。

最佳实践:

  不要将用户定义的数据库角色添加为固定角色的成员。这可能会导致意外的权限升级。

6.5.4 为数据库角色添加成员

  可以将用户或数据为角色添加到角色的成员列表中。

  不能将角色添加为该角色自身的成员,否则将报“不能使角色成为其自身的成员”错误。

  T-SQL 语法示例如下:

ALTER ROLE [DbRole1] ADD MEMBER [sqluser002]

提示:

  不推荐使用 sp_addrole、 sp_addrolemember 等存储过程。

时间: 2024-08-06 07:58:50

6.5 数据库角色的相关文章

SqlServer 服务器角色和数据库角色相关操作

/*------------------------------------------------------------------------------------ [服务器级别-服务器角色] ------------------------------------------------------------------------------------*/ -- 查看固定服务器角色(8个,不可增删,未包括public,每个用户都属于public服务器角色) EXEC sp_hel

SQLServer 服务器角色和数据库角色权限详解

SQLServer中服务器角色和数据库角色权限详解 转自:http://blog.csdn.net/e_online/article/details/4597957 角色 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户.数据库角色的成员可以分为如下几类:Windows用户组或用户账户SQL Server登录其他角色SQL Server的安全体系结构中包括了

SQLServer中服务器角色和数据库角色权限详解

SQLServer中服务器角色和数据库角色权限详解 by e-online 26. 九月 2009 18:55 coming from http://blog.csdn.net/e_online/article/details/4597957 角色 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户. 数据库角色的成员可以分为如下几类: Windows用户组或

SQLServer 维护脚本分享(04)服务器角色和数据库角色相关操作

/*------------------------------------------------------------------------------------ [服务器级别-服务器角色] ------------------------------------------------------------------------------------*/ -- 查看固定服务器角色(8个,不可增删,未包括public,每个用户都属于public服务器角色) EXEC sp_hel

Chapter 3 Protecting the Data(3):创建和使用数据库角色

原版的: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 前言: 数据库

数据库 - 数据库角色

数据库角色 数据库角色:被命名的一组与数据库操作相关的权限 角色是权限的集合 可以为一组具有相同权限的用户创建一个角色 简化授权的过程 一.角色的创建 CREATE ROLE <角色名> 二.给角色授权 GRANT <权限>[,<权限>]- ON <对象类型>对象名 TO <角色>[,<角色>]- 三.将一个角色授予其他的角色或用户 GRANT <角色1>[,<角色2>]- TO <角色3>[,&l

SqlServer服务器和数据库角色

首先我们来阐述服务器(实例级别)的权限,实例级别和数据库级别权限的最大不同在于:实例级别的权限是直接授权给登录名,而数据库级别的全显示授予数据库用户的,然后数据库用户再与登录名匹配.(再SqlServer中,登录名和用户是两个概念,登录名用于登录到数据库实例,而用户位于数据库之内,用于和登录名匹配) 举例: --指定登录名为dbtester,并且创建test数据库中的用户tester1 execute sp_grantdbaccess ‘dbtester’,'tester1' 在服务器(实例)范

转:SQL Server中服务器角色和数据库角色权限详解

当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户. 数据库角色的成员可以分为如下几类: Windows用户组或用户账户 SQL Server登录 其他角色 SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色.除了数据库拥有者创建的角色之外,还有两类预定义的角色.这些可以创建的角色可以分为如下几类: 固定服务器 固定数据库 用户自定义 固定服

SQLServer更改用户定义的数据库角色

更改用户定义的数据库角色注意事项 需具有以下一项或多项权限或成员身份才能运行此命令: 对角色具有 ALTER 权限 对数据库具有 ALTER ANY ROLE 权限 具有 db_securityadmin 固定数据库角色的成员身份 此外,若要更改固定数据库角色中的成员身份还需要: 具有 db_owner 固定数据库角色的成员身份 不能更改固定数据库角色的名称. 使用SSMS数据库管理工具更改用户定义的数据库角色 1.连接数据库->选择数据库->展开安全性->展开角色->展开数据库角