角是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角授予、拒绝或废除的权限也适用于该角的任何成员。可以建立一个角来代表单位中一类工作人员所执行的工作,然后给这个角授予适当的权限。当工作人员开始工作时,只须将他们添加为该角成员,当他们离开工作时,将他们从该角中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角成员时自动生效。
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 语句。
sql容易学吗
可以从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 语句。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论