之前学习到的是对数据库用户进行权限管理,可以对数据库中的表进行删除,或修改,如果非常多的用户,管理的很多的数据库,并且每个用户对数据库管理的权限不同时,就会非常不方便。接下来要总结的是通过给角色设置权限。
角色:事先定义好的一组权限,分为服务器角色和数据库角色
数据库服务器方面的控制权限 ----->服务器角色
服务器角色应用于服务器级别,并且需要预定义他们,这些权限影响着整个服务器,并且不能更改权限集。
这些角色可以在服务器之间被任何人使用,它们用于执行如下任务:
(bulkadmin->sysadmin由最低级到最高级别角色描述)
1、bulkadmin:运行BULK INSERT语句,将文本文件内的数据导入到SQL server 中。
2、dbcreator:创建、修改或删除数据库,同样也可以恢复他们。
3、diskadmin:管理磁盘文件。
4、processadmin:可以通过执行多个进程做多个事件。
5、securityadmin:管理SQL登录名和登录权限,包括密码。
6、serveradmin:管理服务器和执行任务,更改选项甚至启动或关闭服务器。
7、setupadmin:可以在多个链接服务器上工作,并可以管理链接服务器的定义。
8、sysadmin:执行任何活动。
还有一个public:拥有查看数据库权限,但不能对其做修改。
数据库中数据的控制权限----->数据库用户角色
提供了3种类型的数据库角色:用户定义的标准角色,用户定义的应用程序角色和预定义的数据库角色。
一、标准角色
允许用户使用唯一的权限和特权来创建角色。例:可以创建一个叫User的角色,它允许用户选择(select)、插入(insert)和更新(update)数据库中的指定表,但不允许执行任何其他的任务。
二、应用程序角色
允许用户为特定的应用程序创建密码保护的角色。
三、预定义数据库角色
1、dbo/db_owner: 执行所有的配置活动和维护动画已经授予或取消数据库对象上的select、insert、update。
2、db_accessadmin:有权通过添加或删除用户来指定谁可以访问数据库。
3、db_securityadmin:管理数据库的安全,可以修改角色成员身份和管理权限。
4、db_ddladmin:运行任何数据定义语言命令。
5、db_backupoperator:可以备份数据库。
6、db_datareader:可以读取所有用户表中的所有数据。
7、db_datawriter:可以在所有用户表中添加、删除和更改数据。
8、db_denydatareader:不能查看数据库中用户表的任何数据,但可以执行架构修改(例如在表中添加列)
9、db_denydatawriter:不能向用户表中添加、更新或删除任何数据。
10、public:每个数据库用户都属于public数据库角色。所有用户。角色默认属于public角色,这个角色不能被删除。