ORACLE用户权限管理笔记整理

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_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 identified by 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



你可能感兴趣的:(oracle,用户,权限)