数据库的权限是指允许特定用户访问特定数据库或数据库表的授权。按照降序范围,数据库的权限主要有三种类型:数据库、系统和对象。
1.数据库权限:
执行特定类型的SQL语句;
访问其他用户的对象;
控制计算资源的使用;
不适用于数据库管理员(DBA)。
2.系统权限:
对特定类型的对象执行活动,如创建、更改、删除等;
例如,增加或删除某个数据库任何表格的行与列。
3.对象权限:
对特定表、函数或包执行特定操作的权限;
例如,删除某个表格中的行;
允许用户插入、删除、更新或选择数据库对象中的数据;
对象的所有者拥有该对象的所有对象权限,并且这些权限不能被撤销;
对象的所有者可以将该对象的对象权限授予其他数据库用户;
具有管理员权限的用户可以向用户授予和撤销对象权限,该用户无授予权限的对象。
针对数据库的权限有对应的权限命令,在多用户数据库环境中加强数据库安全。权限命令主要有三个:
1.GRANT命令:提供用户对数据库对象的访问权限,还允许用户向其他用户授予访问权限。该命令的基本语法是:
GRANTSELECTONtable1touser1授予user1对table1的SELECT操作权限
2.REVOKE命令:删除用户对数据库对象的访问权限。该命令的基本语法是:
REVOKEDELETEONtable1FROMuser1删除user1对table1的DELETE操作权限
3.DENY命令:拒绝对对象的权限,并阻止主体基于组或角色中的成员身份获得GRANT权限。该命令的基本语法是:
DENYUPDATEONtable1touser1拒绝user1对table1的UPDATE操作权限
只有数据库管理员(DBA)或数据库对象的所有者才能提供/删除数据库对象的权限。
数据库角色是可分配给一个或多个用户的任意数量权限的集合。角色允许为不同类别的用户授予和管理权限集,而不是单独向每个用户授予这些权限。
DBA维护用户角色,并将其应用于整个服务器,而不是单个数据库文件。公共角色为所有用户设置基本默认权限。添加到SQLServer的每个用户都会自动分配公共角色,因此不需要执行其他操作。
数据库角色应用于单个数据库。
1.数据库角色可被授予系统或模式对象权限。
2.数据库角色可被授予其他角色(但角色不能授予其自身,也不能循环授予。例如:无法将角色A授予角色B,如果角色B之前已被授予角色A。)。
3.数据库角色可被授予任何数据库用户。
4.数据库角色可被授予已启用或禁用的用户。用户的安全域包括当前为用户启用的所有角色的权限,不包括当前为该用户禁用的任何角色的权限。
5.角色可以被启用或禁用,以提供选择性的权限可用性。
6.用户的角色可明确被启用或禁用。但是,启用包含其他角色的角色,则会隐式启用角色的所有间接被授予的角色。
7.数据库角色可随时被授予或撤销。
#数据库#