1. 查看指定用户拥有的所有权限(系统权限、对象权限、角色),分别是通过dba_sys_privs,dba_tab_privs,dba_role_privs三个视图来查看。

脚本:query_user_privs.sql

2. 获得指定用户所赋权限的DDL语句,有两种方式:

1).利用1中query_user_privs.sql脚本,在select 后加入grant to等关键字,使得查询输出的结果为完整的DDL语句。

脚本:get_ddl_privs_dic.sql

2)使用oracle提供的包:

dbms_metadata.get_ddl(‘USER’,’&&uname’) 获取创建user的DDL语句

dbms_metadata.get_granted_ddl(‘SYSTEM_GRANT’,’&&uname’) 获取指定用户赋予系统权限的DDL语句

dbms_metadata.get_granted_ddl(‘ROLE_GRANT’,’&&uname‘) 获取指定用户赋予角色的DDL语句

dbms_metadata.get_granted_ddl(‘OBJECT_GRANT,’&&uname’) 获取指定用户赋予对象权限的DDL语句

脚本:get_ddl_privs_pac.sql

3. 脚本

3.1 query_user_privs.sql

set echo off

set verify off

set pagesize 999

set linesize 200

col type format a20

SELECT *

FROM (SELECT a.username, 'ROLE' AS TYPE,

b.granted_role || DECODE (admin_option, 'YES', ' (With Admin Option)', NULL) what_granted

FROM sys.dba_users a, sys.dba_role_privs b

WHERE a.username = b.grantee

UNION

SELECT a.username, 'SysPrivs' AS TYPE,

b.privilege || DECODE (admin_option, 'YES', ' (With Admin Option)', NULL) what_granted

FROM sys.dba_users a, sys.dba_sys_privs b

WHERE a.username = b.grantee

UNION

SELECT a.username,

'ObjPrivs' AS TYPE,

b.owner || '.' || b.table_name || ' - ' || b.privilege ||

DECODE (grantable, 'YES', ' (With Grant Option)', NULL) what_granted

FROM sys.dba_users a, sys.dba_tab_privs b

WHERE a.username = b.grantee

ORDER BY 1)

WHERE username = upper('&input_username');

3.2 get_ddl_privs_dic.sql

clear screen

accept uname prompt 'Enter User Name : '

accept outfile prompt ' Output filename : '

col username noprint

col lne newline

set heading off pagesize 0 verify off feedback off linesize 180

spool &&outfile..gen

prompt

SELECT username, 'CREATE USER '||username||' '||

DECODE(password, 'EXTERNAL', 'IDENTIFIED EXTERNALLY',

'IDENTIFIED BY VALUES '''||password||''' ') lne,

'DEFAULT TABLESPACE '||default_tablespace lne,

'TEMPORARY TABLESPACE '||temporary_tablespace||';' lne

FROM DBA_USERS

WHERE USERNAME LIKE UPPER('%&&uname%')

OR UPPER('&&uname') IS NULL

ORDER BY USERNAME;

SELECT username, 'ALTER USER '||username||' QUOTA '||

DECODE(MAX_BYTES, -1, 'UNLIMITED', TO_CHAR(ROUND(MAX_BYTES/1024))||'K')

||' ON '||tablespace_name||';' lne

FROM DBA_TS_QUOTAS

WHERE USERNAME LIKE UPPER('%&&uname%')

OR UPPER('&&uname') IS NULL

ORDER BY USERNAME;

col grantee noprint

select grantee, granted_role granted_priv,

'GRANT '||granted_role||' to '||grantee||

DECODE(ADMIN_OPTION, 'Y', ' WITH ADMIN OPTION;', ';')

from dba_role_privs

where grantee like upper('%&&uname%')

UNION

select grantee, privilege granted_priv,

'GRANT '||privilege||' to '||grantee||

DECODE(ADMIN_OPTION, 'Y', ' WITH ADMIN OPTION;', ';')

from dba_sys_privs

where grantee like upper('%&&uname%')

order by 1, 2;

spool off

3.3 get_ddl_privs_pac.sql

clear screen

accept uname prompt 'Enter User Name : '

accept outfile prompt ' Output filename : '

spool &&outfile..gen

SET LONG 2000000 PAGESIZE 0 head off verify off feedback off linesize 180

SELECT dbms_metadata.get_ddl('USER','&&uname') FROM dual;

SELECT dbms_metadata.get_granted_ddl('SYSTEM_GRANT','&&uname') from dual;

SELECT dbms_metadata.get_granted_ddl('ROLE_GRANT','&&uname') from dual;

SELECT dbms_metadata.get_granted_ddl('OBJECT_GRANT','&&uname') from dual;

spool off

oracle回收ddl权限,查看oracle用户所有权限,并获取授权的DDL-Oracle相关推荐

  1. Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间

    Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; ...

  2. Oracle数据库如何查看当前用户角色权限及默认表空间

    http://database.51cto.com/art/201108/280474.htm 在Oracle数据库操作中,有时候我们需要查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间 ...

  3. 详解:Oracle 数据库空间表、自定义用户、权限管理、序列、同义词、索引

    一:数据库空间表 表空间是数据库逻辑结构的一个重要组件,可以存放各种应用对象,如表.索引.每一个表空间由一个或多个数据文件组成. 表空间分类: 1.永久性表空间 一般保存表.视图.过程和索引等的数据. ...

  4. oracle表空间权限赋予,oracle创建表空间以及给用户授予权限

    -- 创建表空间 --语法: create tablespace 表空间名 datafile '路径' size 100M [aotuextend to]; create tablespace mys ...

  5. Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)

    一.创建用户及表空间 1.连接数据库 [root@localhost ~]# su - oracle [oracle@localhost ~]$ sqlplus /nolog   #进入sqlplus ...

  6. mysql回收所有权限_MySQL收回用户的权限

    收回用户的权限就是取消已经赋于用户的某些权限.例如,如果数据库管理员觉得某个用户不应该拥有DELETE权限,那么就可以将DELETE权限收回.收回用户不必要的权限可以在一定程度上保证系统的安全性.My ...

  7. MySQL查看所有用户及权限

    查看MYSQL数据库中所有用户 及 有权访问的host mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ...

  8. mysql-front权限管理_mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  9. 授予数据库账号dba权限_数据库用户和权限

    数据库用户权限应该按照用户用途最小化. 数据库用户数据库用户类型DBA在安装时,Vertica数据库自动创建超级用户.默认是dbadmin.该用户不可被删除.具有如下不可撤销的角色: DBADMIN ...

  10. linux用户权限简介,Linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

最新文章

  1. Linux下C++中可使用的3种Hook方法
  2. jmeter mysql 连接复用_JMeter 连接MySQL
  3. c#推箱子小游戏代码_推箱子小游戏V1.0制作
  4. Python 的 heapq 模块源码分析
  5. 一个方便使用的在线截图Web控件-WebImageMaker
  6. ShellExecute函数返回值含义
  7. 组网胖模式_胖AP和瘦AP的区别,组网优缺点分析
  8. Leetcode 538.二叉树转换为累加树
  9. 浙江省智慧城市建设改变百姓生活
  10. SpringBoot-引入jackson-dataformat-xml之后,本返回json的接口返回xml
  11. 成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
  12. html的单元格加线,html表格单元格添加斜下框线的方法
  13. python在电脑上下载哔哩哔哩视频
  14. Android系统屏幕亮度调节Brightness
  15. 老人为戒烟嗑瓜子 脚趾腐烂散发难闻臭味令孙儿恶心至极
  16. java判断是否是英文_Java 判断输入是否为英文字符
  17. 3.2 腾讯云AI解决方案
  18. 【实战技能】不做绑架公司的技术团队成员
  19. 用户登录 kibana 时,提示 “no permissions...” ,导致用户无法查看 log
  20. android4.2屏幕录像,android——使用自带录屏工具进行屏幕录像

热门文章

  1. 一次性讲清 Spring 常用注解 @Bean 、 @Component 、@Autowire、@Resource 的区别, 你知道吗?
  2. Feign Client的各种超时时间设置
  3. Mybatis 3.5.X 解析LocalDateTime 错误问题
  4. 数据分析从零开始实战,Pandas读写Excel/XML数据
  5. centos访问mysql_MySql 安装和访问(基于CentOS)
  6. 求生之路 l4d linux,求生之路开服过程(基于ubuntu)
  7. python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...
  8. python定义一个空数组_python – 在numpy数组中设置空值
  9. 交换三个整数的值,并输出
  10. 【c语言】蓝桥杯算法提高 3-2求存款