数据控制语言DCL
使用GRANT语句授予权限
调用grant语句,权限和特权可以被显示授予单个的用户或者组。其中,可授出的对象包括数据库、表空间、表、视图、索引、包和模式。
GRANT privilege ON object-type object-name TO [{USER|GROUP|PUBLIC}] authorization-name [WITH GRANT OPTION] 如,GRANT CONTROL ON TABLE students TO USER ccpt GRANT INSERT,UPDATE,DELETE ON TABLE students TO USER ccpt WITH GRANT OPTION
- 其中,PUBLIC是将特权授权给所有用户。
- WITH GRANT OPTION是允许authorization-name将特权授权给其他用户。
- 如果用户拥有包含students表的数据库上的SYSADM和DBADM或者students表的CONTROL特权,那么这个用户已经拥有授予students表上的INSERT,UPDATE,DELETE特权的权限了。
使用REVOKE语句撤销权限
调用revoke语句,可以将特权从单个的用户或者组显示撤销。可撤销的对象同上。
REVOKE privilege ON object-type obect-name FROM [{USER|GROUP|PUBLIC}] authorization-name
撤销所有特权,可以用ALL
REVOKE ALL PRIVILEGES ON TABLE students FROM ccpt
- 必须拥有包含students表的数据库上的SYSADM和DBADM或者students表的CONTROL特权才能让用户撤销该对象上的特权,WITH GRANT OPTOION并不可以
- 如果组内的任何成员曾作为个体或者另外一个组的成员被授予过权限,那么使用...FROM GROUP ...不能撤销其特权。