与SQL服务器角色一样,SQL数据库角色同样非常重要,下面为您介绍的就是SQL数据库角中的固定数据库角色和用户定义数据库角色,希望对您学习SQL数据库有所帮助。
数据库角色限制在单个数据库的范围之内——用户属于一个数据库中的db_datareader角色并不意味着他属于另一个数据库中的那个角色。数据库角色分为两个子类:固定数据库角色和用户定义数据库角色。
1.固定SQL数据库角色
就如同存在若干个固定服务器角色一样,这里也有许多的固定数据库角色。他们中的一些有预先定义好的专门的用途,这是不能使用常规的语句复制出来的(即是说,你无法创建拥有同样功能的用户定义数据库角色)。然而,大多数角色的存在是为了处理更一般的情形,并让你做起事情来更加容易。
角 色 |
特 性 |
db_owner |
该角色表现得就好像它是所有其他数据库角色中的成员一样。使用这一角色能够造就这样的情形:多个用户可以完成相同的功能和任务,就好像他们是数据库的所有者一样 |
db_accessadmin |
实现类似于securityadmin服务器角色所实现功能的一部分,只不过这一角色仅局限于指派它并创建用户的单个数据库中(不是单个的权限)。它不能创建新的SQL Server登录账户,但是,该角色中的成员能够把Windows用户和组以及现有的SQL Server登录账户加入到数据库中 |
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语句 |
与使用固定服务器角色很类似,除非是在最大型的数据库中,否则,你可能不会使用到所有这些角色。在这些固定数据库角色中,一些是无法用你自己的数据库角色来替换的,而另一些,只不过在处理那些似乎经常出现的简单粗糙的情形时非常便利而已。
2.用户定义数据库角色
实际上,可供使用的固定角色只是为了帮助你开始入手。安全性真正的中流砥柱是用户定义数据库角色的创建和分配。对于这些角色来说,由你来决定它们将包含什么许可权限。
使用用户定义角色时,可以像针对单独的用户那样,用完全相同的方式进行GRANT、DENY和REVOKE。关于使用角色,好的事情是,用户往往归入访问需要的范畴——通过使用角色,你能够在一个地方做改动,并将改动散播给所有类似的用户(至少被指派到那个角色的用户)。
【编辑推荐】