oracle回收ddl权限,查看oracle用户所有权限,并获取授权的DDL-Oracle
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相关推荐
- Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间
Oracle常用数据字典表 Oracle常用数据字典表 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; ...
- Oracle数据库如何查看当前用户角色权限及默认表空间
http://database.51cto.com/art/201108/280474.htm 在Oracle数据库操作中,有时候我们需要查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间 ...
- 详解:Oracle 数据库空间表、自定义用户、权限管理、序列、同义词、索引
一:数据库空间表 表空间是数据库逻辑结构的一个重要组件,可以存放各种应用对象,如表.索引.每一个表空间由一个或多个数据文件组成. 表空间分类: 1.永久性表空间 一般保存表.视图.过程和索引等的数据. ...
- oracle表空间权限赋予,oracle创建表空间以及给用户授予权限
-- 创建表空间 --语法: create tablespace 表空间名 datafile '路径' size 100M [aotuextend to]; create tablespace mys ...
- Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
一.创建用户及表空间 1.连接数据库 [root@localhost ~]# su - oracle [oracle@localhost ~]$ sqlplus /nolog #进入sqlplus ...
- mysql回收所有权限_MySQL收回用户的权限
收回用户的权限就是取消已经赋于用户的某些权限.例如,如果数据库管理员觉得某个用户不应该拥有DELETE权限,那么就可以将DELETE权限收回.收回用户不必要的权限可以在一定程度上保证系统的安全性.My ...
- MySQL查看所有用户及权限
查看MYSQL数据库中所有用户 及 有权访问的host mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ...
- mysql-front权限管理_mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- 授予数据库账号dba权限_数据库用户和权限
数据库用户权限应该按照用户用途最小化. 数据库用户数据库用户类型DBA在安装时,Vertica数据库自动创建超级用户.默认是dbadmin.该用户不可被删除.具有如下不可撤销的角色: DBADMIN ...
- linux用户权限简介,Linux用户及权限管理
[文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...
最新文章
- Linux下C++中可使用的3种Hook方法
- jmeter mysql 连接复用_JMeter 连接MySQL
- c#推箱子小游戏代码_推箱子小游戏V1.0制作
- Python 的 heapq 模块源码分析
- 一个方便使用的在线截图Web控件-WebImageMaker
- ShellExecute函数返回值含义
- 组网胖模式_胖AP和瘦AP的区别,组网优缺点分析
- Leetcode 538.二叉树转换为累加树
- 浙江省智慧城市建设改变百姓生活
- SpringBoot-引入jackson-dataformat-xml之后,本返回json的接口返回xml
- 成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
- html的单元格加线,html表格单元格添加斜下框线的方法
- python在电脑上下载哔哩哔哩视频
- Android系统屏幕亮度调节Brightness
- 老人为戒烟嗑瓜子 脚趾腐烂散发难闻臭味令孙儿恶心至极
- java判断是否是英文_Java 判断输入是否为英文字符
- 3.2 腾讯云AI解决方案
- 【实战技能】不做绑架公司的技术团队成员
- 用户登录 kibana 时,提示 “no permissions...” ,导致用户无法查看 log
- android4.2屏幕录像,android——使用自带录屏工具进行屏幕录像
热门文章
- 一次性讲清 Spring 常用注解 @Bean 、 @Component 、@Autowire、@Resource 的区别, 你知道吗?
- Feign Client的各种超时时间设置
- Mybatis 3.5.X 解析LocalDateTime 错误问题
- 数据分析从零开始实战,Pandas读写Excel/XML数据
- centos访问mysql_MySql 安装和访问(基于CentOS)
- 求生之路 l4d linux,求生之路开服过程(基于ubuntu)
- python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...
- python定义一个空数组_python – 在numpy数组中设置空值
- 交换三个整数的值,并输出
- 【c语言】蓝桥杯算法提高 3-2求存款