ORACLE用户权限管理笔记整理
select * from user_tab_privs where grantee='EDMS'; --查看用户的表权限select * from user_sys_privs where grantee='EDMS'; --查看用户的系统权限
select * from session_privs; --查看用户权限
select * from user_role_privs where username='EDMS'; --查看用户角色
select * from role_tab_privs where role='CONNECT'; --查看角色表权限
select * from role_sys_privs where role='CONNECT';--查看角色系统权限
select username from dba_users;查询系统所有用户
select * from dba_users where username = 'XXXX';查询用户相关信息
select * from dba_roles; 查询系统所有角色
DBA_ROLE_PRIVS 查询某个用户具有的角色或者某个角色下的有哪些用户
select * from dba_role_privs wheregrantee ='SYS';
select * fromdba_role_privs where granted_role ='RESOURCE';
DBA_SYS_PRIVS 查询某个用户具有的系统权限
select grantee,privilege from dba_sys_privs where grantee='XXXX';
ROLE_SYS_PRIVS显示授予角色的系统权限
select* from role_sys_privs where role = 'RESOURCE';查询RESOURCE角色相关的权限
ROLE_TAB_PRIVS显示授予角色的表权限
管理用户、角色和权限的DBA视图:
DBA_USERS 提供用户的信息
DBA_ROLES 显示数据库中所有角色
DBA_COL_PRIVS 显示列级对象授权
DBA_ROLE_PRIVS 显示用户及其角色
DBA_SYS_PRIVS 显示被授予系统权限的用户
DBA_TAB_PRIVS 显示用户及他们在表上的权限
ROLE_ROLE_PRIVS 显示授予角色的角色
ROLE_SYS_PRIVS 显示授予角色的系统权限
ROLE_TAB_PRIVS 显示授予角色的表权限
SESSION_PRIVS 显示允许用户使用的权限
SESSION_ROLES 显示当前允许用户使用的角色
select * from session_privs;查询用户本身拥有的权限
select * from user_role_privs;查询用户本身拥有的角色
select * from dba_role_privs wheregrantee ='SYS';查询某个用户所具有的角色;
select * from dba_sys_privs where grantee='CONNECT'; 查询角色所拥有的权限
select * from role_sys_privs where role='CONNECT';查询角色所拥有的权限
Oracle 权限设置
一、权限分类:
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
二、系统权限管理:
1、系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2、系统权限授权命令:
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
例:
SQL> connect system/manager
SQL> Create user user50> SQL> grant connect, resource to user50;
查询用户拥有哪里权限:
SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;
删除用户:SQL> drop user 用户名 cascade;//加上cascade则将用户连同其创建的东西全部删除
普通用户使用set autotrace on
首先需创建PLUSTRACE角色,用SYS登录执行@$ORACLE_HOME/sqlplus/admin/plustrce.sql
赋于test用户角色,grant plustrace to test
test用户添加角色后依旧报的错:
ERROR:
ORA-01039: insufficient privileges on underlying objects of the view
SP2-0612: Error generating AUTOTRACE EXPLAIN report
没有权限查看系统相关的视图
select * from role_sys_privs; 查询角色以及它的相关权限
select * from role_sys_privs where role='OEM_MONITOR'; 查询SELECT ANY DICTIONARY 这个权限所在的角色。
然后可以单个赋于SELECT ANY DICTIONARY这个权限,或者给test赋于OEM_MONITOR这个角色。
grant SELECT ANY DICTIONARY to test
页:
[1]