数据库角色限制在单个数据库的范围之内——用户属于一个数据库中的db_datareader角色并不意味着他属于另一个数据库中的那个角色。数据库角色分为两个子类:固定数据库角色和用户定义数据库角色。
1.固定数据库角色
就如同存在若干个固定服务器角色一样,这里也有许多
的固定数据库角色。他们中的一些有预先定义好的专门的用途,这是不能使用常规的语句复制出来的(即是说,你无法创建拥有同样功能的用户定义数据库角色)。
然而,大多数角色的存在是为了处理更一般的情形,并让你做起事情来更加容易。
角 色 | 特 性 |
db_owner | 该角色表现得就好像它是所有其他数据库角色中的成员一样。使用这一角色能够造就这样的情形:多个用户可以完成相同的功能和任务,就好像他们是数据库的所有者一样 |
db_accessadmin | 实 |
db_datareader | 能够在数据库中所有的用户表上执行SELECT语句 |
db_datawriter | 能够在数据库中所有的用户表上执行INSERT、UPDATE和DELETE语句 |
db_ddladmin | 能够在数据库中添加、修改或删除对象 |
db_securityadmin | securityadmin服务器角色的数据库级别的等价物。这一数据库角色不能在数据库中创建新的用户,但是,能够管理角色和数据库角色的成员,并能在数据库中管理语句和对象的许可权限 |
db_backupoperator | 备份数据库(打赌你不会想到那样一个角色!) |
db_denydatareader | 提供一种等同于在数据库中所有表和视图上DENY SELECT的效果 |
db_denydatawriter | 类似于db_denydatareader,只不过这里影响的是INSERT、UPDATE和DELETE语句 |
与使用固定服务器角色很类似,除非是在最大型的数据库中,否则,你可能不会使用到所有这些角色。在这些固定数据库角色中,一些是无法用你自己的数据库角色来替换的,而另一些,只不过在处理那些似乎经常出现的简单粗糙的情形时非常便利而已。