Oracle收集用户的权限
来源:互联网 发布:阿里妈妈淘宝卖家 编辑:程序博客网 时间:2024/06/04 21:44
【使用场景】系统上线前准备工作。一般迁移数据的时候经常使用导入dump文件的方法。由于是一个一个用户导入进去的,所以在导入过程中会报权限问题的错误(可以忽略),还必须在生产库授权系统才能正常工作。使用下面的脚本可以得到授权语句。
在UAT环境执行select语句,在生产环境执行grant语句,根据实际用户做相应的修改。
注意:查询的用户需要有查看dba_开头数据字典的权限,否则报出表或者视图不存在。
SELECT 'GRANT ' || T1.GRANTED_ROLE || ' TO ' || T1.GRANTEE || ';' AS TEXT
FROM DBA_ROLE_PRIVS T1
WHERE T1.GRANTEE IN ('ABOQ',
'AMLM',
'BOP',
'CREDIT',
'DATACORE',
'MDR2',
'METABASE',
'METABASE_CREDIT',
'REPORT',
'UPRR',
'WORK')
UNION ALL
SELECT 'GRANT ' || T2.PRIVILEGE || ' TO ' || T2.GRANTEE || ';' AS TEXT
FROM DBA_SYS_PRIVS T2
WHERE T2.GRANTEE IN ('ABOQ',
'AMLM',
'BOP',
'CREDIT',
'DATACORE',
'MDR2',
'METABASE',
'METABASE_CREDIT',
'REPORT',
'UPRR',
'WORK')
UNION ALL
SELECT 'GRANT ' || T3.PRIVILEGE || ' ON ' || T3.OWNER || '.' ||
T3.TABLE_NAME || ' TO ' || T3.GRANTEE || ';' AS TEXT
FROM DBA_TAB_PRIVS T3
WHERE T3.GRANTEE IN ('ABOQ',
'AMLM',
'BOP',
'CREDIT',
'DATACORE',
'MDR2',
'METABASE',
'METABASE_CREDIT',
'REPORT',
'UPRR',
'WORK');
这样写比较死板,使用‘&’替换变量也很不好用,可以建立一个存储过程。
create or replace procedure user_priv(username in varchar2) as
cursor v_cur is
SELECT 'GRANT ' || T1.GRANTED_ROLE || ' TO ' || T1.GRANTEE || ';' AS TEXT
FROM DBA_ROLE_PRIVS T1
where T1.grantee = upper(username)
union all
SELECT 'GRANT ' || T2.PRIVILEGE || ' TO ' || T2.GRANTEE || ';' AS TEXT
FROM DBA_SYS_PRIVS T2
WHERE T2.GRANTEE = upper(username)
union all
SELECT 'GRANT ' || T3.PRIVILEGE || ' ON ' || T3.OWNER || '.' ||
T3.TABLE_NAME || ' TO ' || T3.GRANTEE || ';' AS TEXT
FROM DBA_TAB_PRIVS T3
where T3.grantee = upper(username);
/*select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee=upper(username) );如果有必要可-以收集角色中的权限*/
begin
for v_t in v_cur loop
begin
dbms_output.put_line(v_t.TEXT);
end;
end loop;
end;
最后直接运行procedure即可 execute user_priv (username => 'hr');
如果遇到输出文本问题请参考:http://www.cnblogs.com/AlbertCQY/archive/2013/03/31/2992497.html
http://blog.csdn.net/u010033674/article/details/8744629
- Oracle收集用户的权限
- oracle用户的权限
- 收集整理Oracle权限的资料
- oracle刚创建的用户获取权限
- oracle 获得当前用户的权限
- oracle跨用户访问的权限
- Oracle system用户的实际权限
- 删除oracle数据库用户的dba权限
- Oracle创建用户、赋予权限的过程
- Oracle的权限用户角色详解
- Oracle用户表权限的管理方法
- oracle查询有sysDBA权限的用户
- Oracle数据库的权限、用户、角色管理
- Oracle的用户、角色和权限
- Oracle数据库的权限、用户、角色管理
- oracle 创建用户,赋予dba的权限
- oracle查询有sysDBA权限的用户
- 【Oracle BIEE】用户dashboard的访问权限
- 技术博客测试
- 堆栈的区别
- 为何要学习MFC?
- 使用Spring连接mysql数据库
- 编程之美-2.3、寻找发帖水王id占一半
- Oracle收集用户的权限
- 单向链表逆序
- UVaOJ442---Matrix Chain Multiplication
- 黑马程序员_JavaScript函数的基本使用
- nandflash下通过supervivi命令行实现挂载root_qtopia的NFS挂载
- 锁存器
- 你们的软件工程师面试都弱爆了
- DFS-变形课
- Dalvik中类的加载