我们知道SQL Server服务器内置了很多角色,分工各不同,分别介绍:
1、sysadmin: 执行SQL Server中的任何动作
该角色能够执行SQL Server上的任何操作。本质上,任何具有这种角色成员身份的人都是那个服务器上的sa。 在SQL Server上,Windows的Administrators组被自动映射到sysadmin角色中。这意味着服务器的Administrators组中的任何成员同时也具有对SQL数据的sa级别的访问权限。如果需要,你可以从sysadmin角色中删除Windows的administrators 组。 只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。 *sa登录一直都是sysadmin角色中的成员,并且不能从该角色中删除。
2、serveradmin:配置服务器设置
该角色能设置服务器范围的配置选项或关闭服务器。尽管它在范围上相当有限,但是,由该角色的成员所控制的功能对于服务器的性能会产生非常重大的影响,角色serveradmin的成员可以执行如下的动作: 向该服务器角色中添加其他登录 运行dbcc pintable命令(从而使表常驻于主内存中) 运行系统过程sp_configure(以显示或更改系统选项) 运行reconfigure选项(以更新系统过程sp_configure所做的所有改动) 使用shutdown命令关掉数据库服务器 运行系统过程sp_tableoption为用户自定义表设置选项的值
3、setupadmin:安装复制和管理扩展过程
角色setupadmin中的成员仅限于管理链接服务器和启动过程,可以执行如下的动作: 向该服务器角色中添加其他登录 添加、删除或配置链接的服务器 * 执行一些系统过程,如sp_serveroption
4、securityadmin:管理登录和CREATE DATABASE的权限以及阅读审计
角色securitypadmin中的成员用于管理登录名、读取错误日志和创建数据库许可权限的登录名,可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作: 向该服务器角色中添加其他登录 读取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:管理SQL Server进程
角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作: 向该服务器角色中添加其他登录 执行KILL命令(以取消用户进程)
6、dbcreator:创建和修改数据库
dbcreator中的成员仅限于创建和更改数据库,这些成员可以进行如下的动作: 向该服务器角色中添加其他登录 运行CREATE DATABASE和ALTER DATABASE语句 * 使用系统过程sp_renamedb来修改数据库的名称
7、diskadmin:管理磁盘文件
diskadmin的成员用来管理磁盘文件(指派给了什么文件组、附加和分离数据库,等等) ,这些成员可以进行如下的动作:: 向该服务器角色中添加其他登录 运行如下系统过程:sp_ddumpdevice和sp_dropdevice。 * 运行DISK INIT语句