系统权限:指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。例如,CREATE SESSION权限、CREATE ANY TABLE权限。

授权方法
直接授权:利用GRANT命令直接为用户授权。
间接授权:先将权限授予角色,然后再将角色授予用户。

系统权限

系统权限的分类:
两大类:
对数据库某一类对象的操作能力,通常带有ANY关键字。例如,CREATE ANY INDEX,ALTER ANY INDEX,DROP ANY INDEX 。

数据库级别的某种操作能力。例如,CREATE SESSION。

语法:
GRANT sys_priv_list TO user_list|role_list|PUBLIC
[WITH ADMIN OPTION];
参数说明:
sys_priv_list:表示系统权限列表,以逗号分隔;
user_list:表示用户列表,以逗号分隔;
role_list:表示角色列表,以逗号分隔;
PUBLIC:表示对系统中所有用户授权;
WITH ADMIN OPTION:表示允许系统权限接收者再把此权限授予其他用户。

系统权限授予时需要注意的几点:
只有DBA才应当拥有ALTER DATABASE 系统权限。
应用程序开发者一般需要拥有CREATE TABLE、CREATE VIEW和CREATE INDEX等系统权限。
普通用户一般只具有CREATE SESSION系统权限。
只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。

数据权限的回收
语法为
REVOKE sys_priv_list
FROM user_list|role_list|PUBLIC;
注意:
多个管理员授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户将不再拥有相应的系统权限。
为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。
如果一个用户获得的系统权限具有传递性,并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。

Last modification:November 15th, 2019 at 04:44 pm
如果觉得我的文章对你有用,请随意赞赏