金振SQLServer中服务器角色和数据库角色权限详解
角色
当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role)。数据库角色指定了可以访问相同数据库对象的一组数据库用户。
数据库角色的成员可以分为如下几类:
Windows用户组或用户账户
SQL Server登录
其他角色
SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:鲁迅先生的作品
固定服务器
固定数据库
用户自定义
固定服务器
由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。
固定服务器角色 | 说 明 |
sysadmin | 执行SQL Server中的任何动作战争与和平的作者是谁 |
rveradmin | 配置服务器设置 |
tupadmin | 安装复制和管理扩展过程 |
curityadmin | 管理登录和CREATE DATABASE的权限以及阅读审计 |
processadmin | 管理SQL Server进程 |
dbcreator 婆婆 | 创建和修改数据库 |
diskadmin | 管理磁盘文件 |
| |
下面两个系统过程用来添加或删除固定服务器角色成员:
sp_addsrvrolemember
怎么锻炼口才
sp_dropsrvrolemember
注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。
sa登录
sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。
注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。
固定服务器角色及其权限
在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:
sp_srvrolepermission[[@srvrolename =] 'role']
如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。
1. sysadmin
阅读材料
固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。
固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。
2. rveradmin
固定服务器角色rveradmin的成员可以执行如下的动作:
向该服务器角色中添加其他登录
运行dbcc pintable命令(从而使表常驻于主内存中)
运行系统过程sp_configure(以显示或更改系统选项)
运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)
使用shutdown命令关掉数据库服务器
运行系统过程sp_tableoption为用户自定义表设置选项的值
3. tupadmin
固定服务器角色tupadmin中的成员可以执行如下的动作:
向该服务器角色中添加其他登录
添加、删除或配置链接的服务器
执行一些系统过程,如sp_rveroption
4. curityadmin
固定服务器角色curitypadmin灵心慧性中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:
向该服务器角色中添加其他登录
读取SQL Server的错误日志
运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都
与系统安全相关。)
午夜夫妻电影
5. processadmin
固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:
向该服务器角色中添加其他登录
执行KILL命令(以取消用户进程)
6. dbcreator
固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:
向该服务器角色中添加其他登录
运行CREATE DATABASE和ALTER DATABASE语句
使用系统过程sp_renamedb来修改数据库的名称
7. diskadmin
固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:
向该服务器角色中添加其他登录
运行如下系统过程:sp_ddumpdevice和sp_dropdevice。
运行DISK INIT语句
固定数据库角色
固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。下表列出了所有的固定数据库角色。