一、用户权限与角色
- 权限,Oracle中权限主要分为两种,系统权限和实体权限。
- 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
①.授予系统权限 查看ORACLE所有系统权限语法: select * from system_privilege_map; 说明:要实现授予系统权限只能由DBA用户授出。 语法:grant 系统权限1[,系统权限2]… to 用户名1[,用户名2]…[WITH ADMIN OPTION]; 例子:
②.系统权限回收:
说明:系统权限只能由DBA用户回收语法:revoke 系统权限 from 用户名;例子:
- 实体权限【对象权限】:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。主要包括select, update, insert, alter, index, delete, all其中all包括所有权限。
①.授予实体权限 语法:grant 实体权限1[,实体权限2]… on 表名 to用户名1[,用户名2]…[WITH GRANT OPTION]; 例子:
②.实体权限回收语法:revoke 实体权限 on 表名from 用户名;例子:
- 查询用户拥有哪里权限:【用户都能使用】
SQL> select * from user_tab_privs;//查询授予用户的对象权限 SQL> select * from user_role_privs;//查询授予用户的角色权限 SQL> select * from user_sys_privs;//查询授予用户的系统权限 SQL> Select * from session_privs;//查询当前用户所拥有的权限
- 查看全部用户拥有权限:【dba身份访问】
SQL> select * from dba_tab_privs;//查询授予全部用户的对象权限 SQL> select * from dba_role_privs;//查询授予全部用户的角色权限 SQL> select * from dba_sys_privs;//查询授予全部用户的系统权限
- 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
- 角色(角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。)
③.将角色赋予用户![]()
- 系统预定义角色
预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色:
①.DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 ②.RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 ③.CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。注意:对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。①.CONNECT, RESOURCE, DBA这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自 己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。②.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。 ③.EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。
- 自定义角色(Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户)
①.创建角色
SQL> create role admin;②.授权给角色SQL> grant connect,resource to admin [WITH ADMIN OPTION]; SQL> grant select,insert on 表名 to admin [WITH GRANT OPTION]
SQL> GRANT admin to 用户 [WITH ADMIN OPTION]
SQL> GRANT role_name TO role_name [WITH ADMIN OPTION]
④.撤销角色的权限
SQL> revoke connect from admin;
⑤.删除角色
SQL> drop role admin;