数据控制
在信息时代,数据库中的数据的安全性至关重要,数据库系统必须能够防止未获权限的访问,防止恶意破坏或修改数据。在数据库中实现安全性除了存储结构等物理方面的措施外,主要通过权限授予并要求用户进入系统时必须通过用户名和口令的检测。进入系统后,系统根据用户名及事先对该用户授权记载提供记录。数据库中的数据由多个用户共享,为保证数据库的安全,SQL提供数据控制语言对数据库进行统一的控制管理。
基本信息
- 中文名
数据控制
- 外文名
Data control
- 应用学科
数据库原理及应用
- 控制语句
授权、收权、拒绝访问
- 包含内容
安全性、完整性、并发控制、恢复
- 作用
控制数据库用户对数据的存取权限
数据控制机制
数据库管理系统通过以下三步来实现数据控制:
授权定义
具有授权资格的用户,如数据库管理员(Database Administrators,DBA)或建表户(Database Owner,DBO),通过数据控制语言(Data Control Language,DCL),将授权决定告知数据库管理系统。
存权处理
数据库管理系统把授权的结果编译后存入数据字典中。数据字典是由系统自动生成、维护的一组表,记录着用户标识、基本表、视图和各表的列描述以及系统的授权情况。
查权操作
当用户提出操作请求时,系统首先要在数据字典中查找用户的数据操作权限,当用户拥有该操作权时才能执行其操作,否则系统将拒绝其操作。
权限与角色
权限
在SQL系统中,安全机制一共有两种。一种是视图机制,当用户通过试图访问数据库时,此视图外的数据不能再访问,试图机制提供了一定的安全性。另外一种是权限机制,是实际中主要使用的安全机制。给用户授予不同类型的权限是权限机制的思想所在,在必要时,授权需要被收回,使用户能够进行的数据库操作以及所操作的数据限定在指定范围内,禁止用户超越权限对数据库进行非法的操作,使得数据库的安全性得到保证。
在数据库中,权限可分为系统权限与对象权限。系统权限是指数据库用户能够对数据库系统进行某种特定操作的权力,它可由数据库管理员授予其他用户,如一个基本表的创建。对象权限是指数据库用户在指定的数据库对象上进行某种特定能力的权力,对象权限由创建基本表、视图等数据库对象的用户授予其他用户,如查询、添加、修改、删除等操作。
角色
角色是多种权限的集合,可以把角色授予用户或其它角色。当要为某一用户同时授予或收回多项权限时,则可以把这些权限定义为一个角色,对此角色进行相关操作。这样许多重复性的工作得以有效避免,数据库用户的权限管理工作在一定程度上得以简化。
数据控制语言
数据操作权限的设置语句包括授权语句、收权语句和拒绝访问3种。
授权语句
授权分对系统特权和对对象特权的两种方式。系统特权又称为语句特权,是允许用户在数据库内部实施管理行为的特权,主要包括创建或删除用户、删除或修改数据库对象等。对象特权类似于数据库操作语言DML的权限,指用户对数据库中的表、视图、存储过程等对象的操作权限。
(1)系统权限与角色的授予