首页 存档 技术 查看内容

SQL Server服务器角色与数据库角色

2018-3-30 13:00 |来自: 互联网 1042 0

摘要: 数据库角色是数据库级别的主体,也是数据库用户的集合。数据库用户可以作为数据库角色的成员,继承数据库角色的权限。数据库管理人员可以通过管理角色的权限来管理数据库用户的权限。 只需给角色指定权限,然后将登 ...

数据库角色是数据库级别的主体,也是数据库用户的集合。数据库用户可以作为数据库角色的成员,继承数据库角色的权限。数据库管理人员可以通过管理角色的权限来管理数据库用户的权限。


只需给角色指定权限,然后将登录名或用户指定为某个角色,而不必给每个登录名或用户指定权限,这样给实际工作带来了很大的便利。

在SQL Server中角色分为服务器角色和数据库角色。而数据库角色又分为固有数据库角色、用户自定义数据库角色和应用程序角色。


MicrosoftSQL Server 2008系统提供了一些固定数据库角色和public特殊角色。


管理数据库角色包括创建数据库角色、添加和删除数据库角色成员、查看数据库角色信息及修改和删除角色等。


1.服务器角色

服务器角色内建于SQL Server,其权限无法更改,每一个角色拥有一定级别的数据库管理职能。


服务器角色包括以下几种。管理登录名及其属性。这类角色可以GRANT、DENY和REVOKE服务器级和数据库级权限,可以重置SQL Server

  • bulkadmin:可以运行BULKINSERT语句。

  • dbcreator:可以创建、更改、删除和还原任何数据库。

  • diskadmin:管理磁盘文件。

  • processadmin:可以终止SQL Server实例中运行的进程。

  • securityadmin:管理登录名的密码。

  • serveradmin:可以更改服务器范围的配置选项和关闭服务器。

  • setupadmin:添加和删除链接服务器,并且也可以执行某些系统存储过程。

  • sysadmin:可以在服务器中执行任何活动。


2.固有数据库角色

固有数据库角色是指这些角色的数据库权限已被SQL Server预定义,不能对其权限进行任何修改,并且这些角色存在于每个数据库中。固有数据库角色包括以下几种。

  • db_accessadmin:可以为Windows登录账户、Windows组和SQLServer登录账户添加或删除访问权限。

  • db_backupoperator:可以备份该数据库。

  • db_datareader:可以读取所有用户表中的所有数据。

  • db_datawriter:可以在所有用户表中添加、删除或更改数据。

  • db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令。

  • db_denydatareader:不能读取数据库内用户表中的任何数据。

  • db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。

  • db_owner:可以执行数据库的所有配置和维护活动。

  • db_securityadmin:可以修改角色成员身份和管理权限。

  • public:当添加一个数据库用户时,它自动成为该角色成员,该角色不能删除,指定给该角色的权限自动给予所有数据库用户。

  • db_owner和db_securityadmin角色的成员可以管理固有数据库角色成员身份;但是,只有db_owner数据库的成员可以向db_owner固有数据库角色中添加成员


3.用户自定义数据库角色

当打算为某些数据库用户设置相同的权限,但是这些权限不等同于预定义的数据库角色所具有的权限时,就可以定义新的数据库角色来满足这一要求,从而使这些用户能够在数据库中实现某些特定功能。用户自定义数据库角色包含以下两种类型。

  • 标准角色:为完成某项任务而指定的具有某些权限和数据库用户的角色。

  • 应用角色:与标准角色不同的是,应用角色默认情况下不包含任何成员,而且是非活动的。将权限赋予应用角色,然后将逻辑加入到某一特定的应用程序中,从而激活应用角色而实现了对应用程序存取数据的可控性。


4. 创建角色

CREATE ROLE rolename [AUTHORIZATION 角色所有者]

参数说明:

AUTHORIZATION关键字用于指定将拥有该角色的所有者(用户或者角色)。若未指定,则执行CREATE ROLE的用户拥有该角色。


例:

CREATE ROLE R2;

CREATE ROLE R3 AUTHORIZATION User1;


5.给角色添加成员

使用系统存储过程添加角色成员,语法为:

--添加成为固定服务器角色成员

sp_addsrvrolemember '角色名称', '用户名'


--添加成为数据库角色成员

sp_addrolemember '角色名称', '用户名'


6.使用存储过程删除角色成员

使用系统存储过程删除角色成员语法为:

--删除固定服务器角色成员

sp_dropsrvrolemember '角色名称', '用户名'


--添加数据库角色成员

sp_droprolemember '角色名称', '用户名'


7.删除角色

DROP ROLE rolename;

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部