三种类型的数据库角色:
固定数据库角色:微软提供的作为系统一部分的角色;
用户定义的标准数据库角色:你自己定义的角色,将Windows用户以一组自定义的权限分组;
应用程序角色:用来授予应用程序专门的权限,而非授予用户组或者单独用户。
1)固定数据库角色
微软提供了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角色的权限,这个数据库角色不能被删除
3)应用程序角色
应用程序角色允许用户为特定的应用程序创建密码保护的角色。
五.权限
1.常用的权限
安全对象 | 常用权限 |
数据库 | 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 |
9.6.4 操作权限
权限分为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的用户或工作组
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22193071/viewspace-1398855/,如需转载,请注明出处,否则将追究法律责任。