Microsoft® Windows NT® 和 Windows® 2000 组的使用方式与角色很相似。有关更多信息,请参见组。
如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员, *** 作比较容易。
在 Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中,用户可属于多个角色。
以下脚本说明登录、用户和角色的添加,并为角色授予权限。
USE master
GO
sp_grantlogin 'NETDOMAIN\John'
GO
sp_defaultdb 'NETDOMAIN\John', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Sarah'
GO
sp_defaultdb 'NETDOMAIN\Sarah', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Betty'
GO
sp_defaultdb 'NETDOMAIN\Betty', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Ralph'
GO
sp_defaultdb 'NETDOMAIN\Ralph', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Diane'
GO
sp_defaultdb 'NETDOMAIN\Diane', 'courses'
GO
USE courses
GO
sp_grantdbaccess 'NETDOMAIN\John'
GO
sp_grantdbaccess 'NETDOMAIN\Sarah'
GO
sp_grantdbaccess 'NETDOMAIN\Betty'
GO
sp_grantdbaccess 'NETDOMAIN\Ralph'
GO
sp_grantdbaccess 'NETDOMAIN\Diane'
GO
sp_addrole 'Professor'
GO
sp_addrole 'Student'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\John'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Sarah'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Diane'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Betty'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Ralph'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Diane'
GO
GRANT SELECT ON StudentGradeView TO Student
GO
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
GO
该脚本给 John 和 Sarah 教授提供了更新学生成绩的权限,而学生 Betty 和 Ralph 只能选择他们自己的成绩。Diane 因同时教两个班,所以添加到两个角色中。ProfessorGradeView 视图应将教授限制在自己班学生的行上,而 StudentGradeView 应限制学生只能选择自己的成绩。
SQL Server 2000 和 SQL Server 7.0 版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。
固定服务器角色
描述
sysadmin
可以在 SQL Server 中执行任何活动。
serveradmin
可以设置服务器范围的配置选项,关闭服务器。
setupadmin
可以管理链接服务器和启动过程。
securityadmin
可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。
processadmin
可以管理在 SQL Server 中运行的进程。
dbcreator
可以创建、更改和除去数据库。
diskadmin
可以管理磁盘文件。
bulkadmin
可以执行 BULK INSERT 语句。
可以从 sp_helpsrvrole 获得固定服务器角色的列表,可以从 sp_srvrolepermission 获得每个角色的特定权限。
每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。例如,如果 Database1 和 Database2 中都有叫 UserX 的用户 ID,将 Database1 中的 UserX 添加到 Database1 的 db_owner 固定数据库角色中,对 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成员没有任何影响。
固定数据库角色
描述
db_owner
在数据库中有全部权限。
db_accessadmin
可以添加或删除用户 ID。
db_securityadmin
可以管理全部权限、对象所有权、角色和角色成员资格。
db_ddladmin
可以发出 ALL DDL,但不能发出 GRANT、REVOKE 或 DENY 语句。
db_backupoperator
可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。
db_datareader
可以选择数据库内任何用户表中的所有数据。
db_datawriter
可以更改数据库内任何用户表中的所有数据。
db_denydatareader
不能选择数据库内任何用户表中的任何数据。
db_denydatawriter
不能更改数据库内任何用户表中的任何数据。
可以从 sp_helpdbfixedrole 获得固定数据库角色的列表,可以从 sp_dbfixedrolepermission 获得每个角色的特定权限。
数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public 角色的权限。
这个不太好说,没有系统的总结过,简单的说一下个人理解吧角色可以分:固定服务器级别、固定数据库级别
服务器级别角色用户无法创建,而数据库级别角色用户可以自定义
角色是权限的集合,是一个组,用户从属于角色,是组的成员
数据库用户是数据库级别上的主体,每个数据库用户都是 public 角色的成员,
如果未向某个用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的 public 角色的权限
简单的说,每个角色都有一定的权限,其中的用户成员享有其角色拥有的权限
用户可以从属于多个角色,也就是可以同时享有多重权限
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)