数据库

Oracle 权限(grant、revoke)设定

位置:首页 > 数据库 > Oracle教程,2017-04-17
一、介绍在oracle中没有其他数据库系统中的数据库的概念,对象都是创建在用户下。当前用户具有当前用户下所有对象的所有权限无论该对象是否是当前用户所创建。举个简
一、介绍

在oracle中没有其他数据库系统中的数据库的概念,对象都是创建在用户下。当前用户具有当前用户下所有对象的所有权限无论该对象是否是当前用户所创建。举个简单例子创建一个用户授予该用户连接权限,然后用管理员用户在该用户下创建一张表,该用户可以删除管理员在该用户下创建的表。


二、权限

权限主要可以分成三类:系统权限、角色、对象权限。角色是一类权限的分组。

1.系统权限

系统权限其实就是用户在当前用户架构下所具有的权限。在11g中系统权限有200个,比如create table,UNLIMITED TABLESPACE等。

查询当前用户拥有的系统权限:

SELECT*FROM user_sys_privs;

Oracle 权限(图1)

2.角色

角色其实就是一类权限的分组,所以给用户分配角色其实也是在给用户分配权限。在oracle中有三个比较常用的角色。对于一般不是很严格的系统可以授予开发用户CONNECT、RESOURCE角色权限即可。

DBA:该角色具有数据库所有的权限。

CONNECT:该角色具有连接数据库的权限,和create session的权限一样。

RESOURCE:该角色是应用程序开发角色,具有如下权限

Oracle 权限(图2)

查询当前用户拥有的角色:

Oracle 权限(图3)

3.对象权限

对象权限指的是其它拥有用户的对象的权限。其它用户对象的权限包括:SELECT,DELETE,UPDATE,ALTER,INSERT,INDEX,REFERENCES,FLASHBACK,DEBUG,QUERYREWRITE,ON COMMIT REFRESH;注意其它用户对象的权限没有drop的权限。

查询当前用户拥有的对象权限:

Oracle 权限(图4)

当前用户chenmh拥有用户zhang下student表的所有权限。

三、grant授权

1.授予用户connect、resource角色权限。一般创建应用程序开发用户可以授予这两个角色的权限。

2.授予用户chenmh用户zhang下person表的SELECT,DELETE,UPDATE,INSERT权限,授予具体的对象权限是对于权限严格控制的一种方案。

Oracle 权限(图5)

3.授予用户chenmh用户zhang下person表的所有权限

grant权限图表:

Oracle 权限(图6)

Oracle 权限(图7)

四、REVOKE回收权限

1.回收角色权限

2.回收系统权限

3.回收用户对象权限,回收zhang用户下person表的所有权限,如果是单个授予的权限需要单个的收回

revoke图表:

Oracle 权限(图8)

Oracle 权限(图9)

五、批量操作

1.批量授予权限,授予用户chenmh拥有zhang下所有表的增删改查权限。生产批量执行sql

Oracle 权限(图10)

如果要查询其它对象可以查询dba_objects表。

2.批量收回系统权限,收回用户chenmh的所有系统权限

将拼接的sql复制出来执行查询。

Oracle 权限(图11)

3.批量收回角色权限

4.批量收回用户对象权限,收回用户chenmh在架构zhang下的所有权限

Oracle 权限(图12)


TAGS:Oracle 权限

猜你喜欢


NewHot