固定数据库是SQL Server中的两种数据库角色之一,其权限是数据库专有的。SQL固定数据库角色是指SQL Server已经定义了这些角色所具有的管理、访问数据库的权限,而且SQL Server管理者不能对其所具有的权限进行任何修改。SQL Server中的每一个数据库中都有一组固定的数据库角色,在数据库中使用SQL固定数据库角色可以将不同级别的数据库管理工作分给不同的角色,从而有效地实现工作权限的传递。
基本定义
固定数据库是SQL Server中的两种数据库角色之一,其权限是数据库专有的。
数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以使一个用户具有属于同一数据库的多个角色。SQL Server提供了两种类型的数据库角色:系统固定角色和用户自定义角色。
固定数据库角色
SQL固定数据库角色是指SQL Server已经定义了这些角色所具有的管理、访问数据库的权限,而且SQL Server管理者不能对其所具有的权限进行任何修改。SQL Server中的每一个数据库中都有一组固定的数据库角色,在数据库中使用SQL固定数据库角色可以将不同级别的数据库管理工作分给不同的角色,从而有效地实现工作权限的传递。SQL Server提供了十种常用的固定数据库角色来授予组合数据库级管理员权限,这些SQL固定数据库角色信息存储在系统表sysusers中。其含义如下:
public:
db_owner:在数据库中有全部权限。
db_accessadmin:可以添加或删除用户ID。
db_ddladmin:可以发出ALL DDL操作的所有权。
db_securityadmin:可以管理全部权限、对象所有权、角色和角色成员资格。
db_backupoperator:可以发出DBCC、CHECKPOINT和BACKUP语句。
db_datareader:可以选择数据库内任何用户表中的所有数据。
db_datawriter:可以更改数据库内任何用户表中的所有数据。
db_denydatareader:不能选择数据库内任何用户表中的任何数据。
db_denydatawriter:不能更改数据库内任何用户表中的任何数据。
在固定的数据库角色中,public是一个特殊的数据库角色,数据库中的每个用户都是其成员。不能将用户、组或其他角色指定给public角色,在每一个数据库中都包含public角色,且不能删除这个角色。