3.6 数据控制
SQL中数据控制功能包括事务管理功能和数据保护功能,即数据库的恢复、并发控制;数据库的安全性和完整性控制。
DBMS的安全性控制功能:
(1)把授权的决定告知系统,由SQL的GRANT和REVOKE语句完成;
(2)把授权的结果存入数据字典;
(3)当用户提出操作请求时,根据授权情况进行检查,以决定是否执行操作请求。
3.6.1 授权
格式:GRANT <权限>[,<权限>]...
[ON <对象类型><对象名>]
TO<用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户。
说明:如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把此权限授予其他的用户,这里的用户是指已经建立的用户(或用户组),Public代表所有用户。
一、不同对象类型允许的操作权限
数据库:CREATETAB,此权限用于建立表。
基本表:SELECT、INSERT、UPDATE、DELETE、ALTER、INDEX以及这六种权限的各(ALL Privileges);
属性列和视图:查询(Select)、插入(INSERT)、修改(UPDATE)、删除(DELETE)以及四种权限的总和(ALL PRIVILEGES);
二、实例
Grant Select ON Table Employees To 刘备
-- 把查询Employees和Programs表权限授予所有用户:
Grant Select ON Table employees, Programs To Public
-- 把查询Employees和修改Employees中职员姓名的权限授给用户刘备:
Grant Select , Update (Ename) ON Table Employees To 刘备
-- 把对表Programs的插入权限授予用户刘备,并允许他将此权限再授予其他用户:
Grant Insert ON Table Programs To 刘备 With Grant Option
3.6.2 收回权限
格式:Revoke <权限>[,<权限>]...
[ON <对象类型><对象名>]
From <用户>[, <用户>]...
说明:如果被回收用户有将权限授予其他用户,那么其他用户所继承的权限也会被收回。
Revile Select ON Table Employees From 刘备
-- 收回所有用户对表Programs的查询权限
Revoke Select ON Table Programs From Public
本章小结:
通过这章的学习,更加深刻的理解了数据库标准语言SQL的简单易用,功能强大等特点,以及进一步掌握了各种数据库定义、数据库查询、数据更新、数据控制等具体的SQL语言操作。最后希望和我一同学习的人对SQL的理解和运用都能更上一层楼。
后记:
也许,一个人学习的过程是枯燥乏味的,因为你面对的不是如花似玉的美女,而只是一堆不会动的字符;也许你看到的文字也只是看过而已,并不会深入你的脑海,睡一觉你也就忘了;也许,你并不是真的想看你所看到的,只是为了某些人、某些事;也许。。。还有更多的也许。