grant <权限> [,<权限>] … [on <操作对象类型><操作对象名>] to <用户>[,<用户>]…[with grant option] 作用:将对某一对象的某一权限授予某一用户
语法各部分解释:
用户: public: 全体用户 也可以是单个用户的用户名
[with grant option] 这个选项表示是否将授予此操作的权利的权利授予用户。举个例子:grant select on table Student to u2 with grant option 表示将查询Student表的权利下放给用户u2,意味着用户u2可以查询Student表了,然而加上with grant option 表示用户u2可以将查询权限下放给其他用户,当u2将权限下放给u3时,u3和u2都可以查询表。不加with grant option ,u2没有权限将查询权利授予其他用户。
下面结合几个例子帮助看客来了解以上语句的用法:
前提条件: 数据库中现存在3个关系表 Student (Sno ,Sname,Ssex,Sage,Sdept); 解释:学生(学号,学生姓名,学生性别,学生年龄,学生专业); Course(Cno,Cname,Cpno); 解释:课程(课程号,课程名,可能的先修课程); SC(Sno,Cno,Grade); 解释:学生选课情况(学号,课程号,成绩)
举例: 1): 将查询Student表的权利授予全体用户————grant select on table Student to public 2): 将Student和Course表的所有权利授予u2和u3,其中包括Select,insert,update,delete,alter,index这六个权限————-grant all on table Student,Course to u2,u3 3): 将Student关系表的查询权限和Sno属性列的修改权限授予用户u4——-grant update(Sno),select on table Student to u4 4): 将SC关系表的插入操作的权限授予u5并且u5可以将插入权限授予给其他用户———-grant insert on table SC to u5 with grant option
当察觉到一个用户对数据库的操作的权限过大时,应该采取措施进行收回权限,以保证数据库的正常运行
revoke <权限> [,<权限>]… [on <对象类型><对象名>] from <用户>[,<用户>]…
举例: 1): 将更新Student关系表中的学号的权限从u4中收回——-revoke update(Sno) on table Student from u4 2): 将对Student关系表的插入权限从u5中收回————-revoke insert on table SC from u5 (如果创建时加with grant option,则删除时将此权限也一并收回) 3): 将对SC关系表的查询权限从全体用户中收回————-revoke select on table SC from public
新闻热点
疑难解答