在存储过程中访问视图授权
来源:互联网 发布:mac hosts文件会没有吗 编辑:程序博客网 时间:2024/06/11 19:30
在存储过程中访问另一个schema的同义词,如果访问权限是通过角色来授权的,在编译存储过程中不能访问对象情况,这就需要直接授权,
以下是参考脚本
DECLARE
V_GRANTOR_USER VARCHAR2(20) := 'S_USER'; -- 原来
V_GRANTEE_USER VARCHAR2(20) := 'T_USER'; -- 被授予的用户
--V_GRANTEE_ROLE VARCHAR2(20) := 'R_DEV'; -- 被授予的role
BEGIN
FOR L IN (SELECT SYNONYM_NAME OBJECT_NAME
FROM Dba_Synonyms
WHERE OWNER = V_GRANTEE_USER
) LOOP
EXECUTE IMMEDIATE 'DROP SYNONYM ' || V_GRANTEE_USER ||'.'||L.OBJECT_NAME;
END LOOP;
FOR L IN (SELECT OBJECT_NAME
FROM DBA_OBJECTS
WHERE OWNER = V_GRANTOR_USER
AND OBJECT_TYPE IN ('TABLE') -- SEQUENCE,job,type
) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT,DELETE,UPDATE,INSERT ON ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME || ' TO ' || V_GRANTEE_USER;
EXECUTE IMMEDIATE 'CREATE SYNONYM ' || V_GRANTEE_USER || '.' || L.OBJECT_NAME || ' FOR ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME;
END LOOP;
FOR L IN (SELECT OBJECT_NAME
FROM DBA_OBJECTS
WHERE OWNER = V_GRANTOR_USER
AND OBJECT_TYPE IN ('VIEW','SEQUENCE') -- SEQUENCE,job,type
) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME || ' TO ' || V_GRANTEE_USER;
EXECUTE IMMEDIATE 'CREATE SYNONYM ' || V_GRANTEE_USER || '.' || L.OBJECT_NAME || ' FOR ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME;
END LOOP;
-- 具体存储过程,视图,包的授权
FOR L IN (SELECT distinct upper(OBJECT_NAME) OBJECT_NAME
FROM DBA_OBJECTS
WHERE OWNER = V_GRANTOR_USER
AND OBJECT_TYPE IN ('FUNCTION', 'PROCEDURE','PACKAGE BODY','TYPE')
) LOOP
EXECUTE IMMEDIATE 'GRANT EXECUTE ON ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME || ' TO ' || V_GRANTEE_USER;
dbms_output.put_line(L.OBJECT_NAME);
EXECUTE IMMEDIATE 'CREATE SYNONYM ' || V_GRANTEE_USER || '.' || L.OBJECT_NAME || ' FOR ' || V_GRANTOR_USER || '.' || L.OBJECT_NAME;
END LOOP;
END;
- 在存储过程中访问视图授权
- 在存储过程中创建视图
- SQL 为其他用户授权访问存储过程
- Sql server中在存储过程中创建视图
- 在java语言中访问存储过程和存储函数
- 我自己的代码---在存储过程中创建视图
- SQLserver 在存储过程中创建函数,创建视图
- 使用VC在ADO中访问存储过程的方法
- 在C# 中使用存储过程访问 SQL 数据库
- oracle存储过程--在应用程序中访问存储过程程序完整举例
- 存储过程授权
- 在存储过程中执行存储过程
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
- 查找一个表用在那些视图和存储过程中
- 在PowerDesigner中设计物理模型3——视图、存储过程和函数
- 在PowerDesigner中设计物理模型3——视图、存储过程和函数
- 在PowerDesigner中设计物理模型3——视图、存储过程和函数
- 在PowerDesigner中设计物理模型3——视图、存储过程和函数
- 2种方式实现局部刷新
- HBase-1.2.1和Phoenix-4.7.0分布式安装指南
- 定义变量的地方!
- 高速缓存与主存的三种映射方式
- jquery ui tree
- 在存储过程中访问视图授权
- Leetcode #283 Move Zeroes
- C++ 数字与字符串互转
- apns server 官方文档
- AsyncTask下载
- 【知识】beautifulsoup的使用方法
- DataGridView 选中一行不变色
- [数据结构]合并有序数组
- iOS 自定义进度条 MDRadialProgress