Microsoft SQL Server 数据库服务器管理维护角色

固定服务器角色:
按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述:
Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。
Dbcreator:这个服务器角色的成员可以创建、更改、删除和还原任何数据库。这不仅是适合助理DBA的角色,也可能是适合开发人员的角色。
Diskadmin:这个服务器角色用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理DBA。
Processadmin:SQL Server 2008能够多任务化,也就是说可以通过执行多个进程做多个事件。例 如,SQL Server 2008可以生成一个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在 SQL Server 2008中称为删除)进程。
Securityadmin:这个服务器角色的成员将管理登录名及其属性。他们可以授权、拒绝和撤销服务器级权限。也可以授权、拒绝和撤销数据库级权限。另外,它们可以重置SQL Server 2008登录名的密码。
Serveradmin:这个服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。例如SQL Server 2008可以使用多大内存或监视通过网络发送多少信息,或者关闭服务器,这个角色可以减轻管理员的一些管理负担。
Setupadmin:为需要管理链接服务器和控制启动的存储过程的用户而设计。这个角色的成员能添加到setupadmin,能增加、删除和配置链接服务器,并能控制启动过程。
Sysadmin:这个服务器角色的成员有权在SQL Server 2008中执行任何任务。
Public:有两大特点,第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员。

固定数据库角色:
微软提供了9个内置的角色,以便于在数据库级别授予用户特殊的权限集合。
db_owner:该角色的用户可以在数据库中执行任何操作。
db_accessadmin:该角色的成员可以从数据库中增加或者删除用户。
db_backupopperator:该角色的成员允许备份数据库。
db_datareader:该角色的成员允许从任何表读取任何数据。
db_datawriter:该角色的成员允许往任何表写入数据。
db_ddladmin:该角色的成员允许在数据库中增加、修改或者删除任何对象(即可以执行任何DDL语句)。
db_denydatareader:该角色的成员被拒绝查看数据库中的任何数据,但是他们仍然可以通过存储过程来查看。
db_denydatawriter: 像db_denydatareader角色,该角色的成员被拒绝修改数据库中的任何数据,但是他们仍然可以通过存储过程来修改。
db_securityadmin:该角色的成员可以更改数据库中的权限和角色。
public:在SQL Server 2008中每个数据库用户都属于public数据库角色。当尚未对某个用户授予或者拒绝对安全对象的特定权限时,这该用户将据称授予该安全对象的public角色的权限,这个数据库角色不能被删除。

 

常用的权限:

 

安全对象

常用权限

数据库

CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE VIEW、CREATE TABLE、CREATE RULE、BACKUP DATABASE、BACKUP LOG

SELECT、DELETE、INSERT、UPDATE、REFERENCES

表值函数

SELECT、DELETE、INSERT、UPDATE、REFERENCES

视图

SELECT、DELETE、INSERT、UPDATE、REFERENCES

存储过程

EXECUTE、SYNONYM

标量函数

EXECUTE、REFERENCES

 

操作权限:

权限分为3种状态:授予、拒绝、撤销,可以使用如下的语句来修改权限的状态。

授予权限(GRANT):授予权限以执行相关的操作。通过角色,所有该角色的成员继承此权限。
撤销权限(REVOKE):撤销授予的权限,但不会显示阻止用户或角色执行操作。用户或角色仍然能继承其他角色的GRANT权限。
拒绝权限(DENY):显式拒绝执行操作的权限,并阻止用户或角色继承权限,该语句优先于其他授予的权限。

1.授予权限

本语法格式:

GRANT

{ALL|statement[,..n] }

TO security_account[,..n]

ALL:表示希望给该类型的对象授予所有可用的权限。不推荐使用此选项,保留些选项仅用于向后兼容。授予ALL参数相当于授予以下权限:
如果安全对象为数据库,则ALL表示CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE VIEW、CREATE TABLE、CREATE RULE等权限。
如果安全对象为标量函数,则ALL表示EXECUTE和REFERENCES。
如果安全对象为表值函数,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。
如果安全对象为存储过程,则ALL表示EXECUTE、SYNONYM。
如果安全对象为表,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。
如果安全对象为视图,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。
Statement:表示可以授予权限的命令,例如,CREATE DATABASE。
security_account:表示定义被授予权限的用户单位。security_account可以是SQL Server的数据库用户,可以是SQL Server的角色,也可以是Windows的用户或工作组
 
 
posted @ 2014-07-29 14:38 Gavin Liu 阅读(...) 评论(...) 编辑 收藏

Right people get the right information at the right time.
以技术求生存,以市场求发展;学以至用,开拓创新;达技术之颠峰,至市场之广阔!