Oracle查看用户权限

简介:
模拟MySQL的show grants命令

首先创建用户,并且将示例帐号的表授权给他。

  1. sqlplus / as sysdba

  2. drop user edmond cascade;
  3. create user edmond identified by edmond;
  4. grant connect,resource to edmond;
  5. grant select,insert,update,delete on hr.employees to edmond;
  6. grant update(department_id),insert(department_name,department_id) on hr.departments to edmond;

作为DBA帐号登录,查看他的权限。

  1. set linesize 200;
  2. col privs_type format a10;
  3. col username format a20;
  4. col table_name format a35;
  5. col column_name format a25;
  6. col PRIVILEGE format a60;
  7. with t1 as 
  8. (
  9.     select upper('edmond') username from dual
  10. )
  11. select '角色' privs_type,'NULL' username,'NULL' table_name,'NULL' column_name,wm_concat(GRANTED_ROLE) PRIVILEGE from dba_role_privs,t1 where GRANTEE=t1.username group by '角色','NULL','NULL','NULL'
  12. union all
  13. select '表权限',owner,TABLE_NAME,'NULL',wm_concat(PRIVILEGE) PRIVILEGE from dba_tab_privs,t1 where GRANTEE=t1.username group by '表权限',owner,TABLE_NAME,'NULL'
  14. union all
  15. select '列权限',owner,TABLE_NAME,column_name,wm_concat(PRIVILEGE) PRIVILEGE from dba_col_privs,t1 where GRANTEE=t1.username group by '列权限',owner,TABLE_NAME,column_name;

作为普通用户登录,查看权限

  1. set linesize 200;
  2. col privs_type format a10;
  3. col username format a20;
  4. col table_name format a35;
  5. col column_name format a25;
  6. col PRIVILEGE format a60;
  7. with t1 as 
  8. (
  9.     select upper('edmond') username from dual
  10. )
  11. select '表权限' privs_type,TABLE_SCHEMA username,TABLE_NAME,'NULL' column_name,wm_concat(PRIVILEGE) PRIVILEGE from all_tab_privs,t1 where GRANTEE=t1.username group by '表权限',TABLE_SCHEMA,TABLE_NAME,'NULL'
  12. union all
  13. select '列权限',TABLE_SCHEMA,TABLE_NAME,column_name,wm_concat(PRIVILEGE) PRIVILEGE from all_col_privs,t1 where GRANTEE=t1.username group by '列权限',TABLE_SCHEMA,TABLE_NAME,column_name;

  14. 本文转自ICT时空dbasdk的博客,原文链接:Oracle查看用户权限 ,如需转载请自行联系原博主。
相关文章
|
SQL 存储 Oracle
Oracle总结【视图、索引、事务、用户权限、批量操作】三
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott (4)TCL(事务
256 0
Oracle总结【视图、索引、事务、用户权限、批量操作】三
|
SQL Oracle 关系型数据库
Oracle总结【视图、索引、事务、用户权限、批量操作】二
在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中,我们可以把各种的SQL语句分为四大类… (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott (4)TCL(事务
294 0
Oracle总结【视图、索引、事务、用户权限、批量操作】二

热门文章

最新文章

推荐镜像

更多