数据库里什么叫角色分几种

如题所述

角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。

Microsoft®WindowsNT®和Windows®2000组的使用方式与角色很相似。有关更多信息,请参见组。

如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。

在Microsoft®SQLServer™2000和SQLServer7.0版中,用户可属于多个角色。

以下脚本说明登录、用户和角色的添加,并为角色授予权限。

USEmaster

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

USEcourses

GO

sp_grantdbaess'NETDOMAIN\John'

GO

sp_grantdbaess'NETDOMAIN\Sarah'

GO

sp_grantdbaess'NETDOMAIN\Betty'

GO

sp_grantdbaess'NETDOMAIN\Ralph'

GO

sp_grantdbaess'NETDOMAIN\Diane'

GO

sp_addrole'Professor'

GO

sp_addrole'Student'

GO

sp_'Professor','NETDOMAIN\John'

GO

sp_'Professor','NETDOMAIN\Sarah'

GO

sp_'Professor','NETDOMAIN\Diane'

GO

sp_'Student','NETDOMAIN\Betty'

GO

sp_'Student','NETDOMAIN\Ralph'

GO

sp_'Student','NETDOMAIN\Diane'

GO

GRANTSELECTONTOStudent

GO

GRANTSELECT,UPDATEONTOProfessor

GO

该脚本给John和Sarah教授提供了更新学生成绩的权限,而学生Betty和Ralph只能选择他们自己的成绩。Diane因同时教两个班,所以添加到两个角色中。视图应将教授限制在自己班学生的行上,而应限制学生只能选择自己的成绩。

SQLServer2000和SQLServer7.0版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。

固定服务器角色

描述

sysadmin

可以在SQLServer中执行任何活动。

serveradmin

可以设置服务器范围的配置选项,关闭服务器。

setupadmin

可以管理链接服务器和启动过程。

可以管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码。

可以管理在SQLServer中运行的进程。

dbcreator

可以创建、更改和除去数据库。

diskadmin

可以管理磁盘文件。

bulkadmin

可以执行BULKINSERT语句。

可以从sp_helpsrvrole获得固定服务器角色的列表,可以从sp_获得每个角色的特定权限。

每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。例如,如果Database1和Database2中都有叫UserX的用户ID,将Database1中的UserX添加到Database1的db_owner固定数据库角色中,对Database2中的UserX是否是Database2的db_owner角色成员没有任何影响。

固定数据库角色

描述

db_owner

在数据库中有全部权限。

db_aessadmin

可以添加或删除用户ID。

db_

可以管理全部权限、对象所有权、角色和角色成员资格。

db_ddladmin

可以发出ALLDDL,但不能发出GRANT、REVOKE或DENY语句。

db_

可以发出DBCC、CHECKPOINT和BACKUP语句。

db_datareader

可以选择数据库内任何用户表中的所有数据。

db_datawriter

可以更改数据库内任何用户表中的所有数据。

db_

不能选择数据库内任何用户表中的任何数据。

db_denydatawriter

不能更改数据库内任何用户表中的任何数据。

可以从sp_helpdbfixedrole获得固定数据库角色的列表,可以从sp_dbfixedrolepermission获得每个角色的特定权限。

数据库中的每个用户都属于public数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给public角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给public角色的权限。

温馨提示:答案为网友推荐,仅供参考