首页 > 数据库 >Oracle递归授权view底层依赖表查询权限存储过程

Oracle递归授权view底层依赖表查询权限存储过程

时间:2024-02-20 14:37:57浏览次数:32  
标签:referenced name 递归 -- object owner Oracle type view

create or replace procedure sys.grant_view_base_table_access
(
p_accessowner VARCHAR2,
p_vowner VARCHAR2,
p_vname VARCHAR2
)
--RETURN number
as
v_accessowner VARCHAR2(200) :=trim(upper(p_accessowner));
v_owner VARCHAR2(200) := trim(upper(p_vowner));
v_name VARCHAR2(200) := trim(upper(p_vname));
--v_granted number := 0;
v_sql VARCHAR2(500);
-- Check referenced tables and views


BEGIN

for myCursor in (
SELECT
referenced_owner,
referenced_name
FROM dba_dependencies
where referenced_type = 'TABLE'
START WITH (owner, name, type) IN
(SELECT owner, object_name, object_type
FROM dba_objects
WHERE object_type = 'VIEW'
and owner = v_owner
AND object_name = v_name)
CONNECT BY NOCYCLE name = prior referenced_name
and owner = prior referenced_owner
and type = 'VIEW'
union all
SELECT
referenced_owner,
referenced_name
FROM dba_dependencies
where referenced_type = 'VIEW'
START WITH (owner, name, type) IN
(SELECT owner, object_name, object_type
FROM dba_objects
WHERE object_type = 'VIEW'
and owner = v_owner
AND object_name = v_name)
CONNECT BY NOCYCLE name = prior referenced_name
and owner = prior referenced_owner
and type = 'VIEW')

 

LOOP
-- 在这里进行授权处理
v_sql := 'GRANT select on '||myCursor.referenced_owner||'.'||myCursor.referenced_name||' TO '||v_accessowner||'';
dbms_output.put_line(''||V_SQL||'');
EXECUTE IMMEDIATE v_sql;
END LOOP;
v_sql := 'GRANT select on '||v_owner||'.'||v_name||' TO '||v_accessowner||'';
dbms_output.put_line(''||V_SQL||'');
EXECUTE IMMEDIATE v_sql;

--v_granted := 1;
--RETURN v_granted;
END;

 

--使用示例:
--execute sys.grant_view_base_table_access('need_privs_user','v_owner','v_name');

标签:referenced,name,递归,--,object,owner,Oracle,type,view
From: https://www.cnblogs.com/JcLevy/p/18022992

相关文章

  • Android 《ViewPager》简单应用
    布局文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://sche......
  • Oceanbase3.2.4ForOracle_Docker搭建过程
    Oceanbase3.2.4ForOracle_Docker搭建过程背景快速搭建测试环境。docker的方式较为简单。并且便于进行相关的测试和维护工作。还总结了部分参数设置执行数据库创建注意事项:创建目录:mkdir-p/home/admin/oceanbase/mkdir-p/home/admin/logs/obproxymkdir-p/home......
  • 洛谷题单指南-递推与递归-P3612 [USACO17JAN] Secret Cow Code S
    原题链接:https://www.luogu.com.cn/problem/P3612题意解读:字符串加长的时候,是先把最后一个字符接上,再拼接其余字符,注意不是翻转,要找第n个字符,就要看字符串加长几次后长度能超过n,然后在加长后的字符串中找第n个字符。解题思路:如果直接通过模拟法,字符串长度太长,且要找的第n个数......
  • 递归与循环比较
    下面通过几个例子,对递归与循环进行比较。递归1#include<iostream>usingnamespacestd;voiddfs(intn){ if(n==0)return; cout<<n<<”“;dfs(n-1);}intmain(){ dfs(10000);dfs(75000);//运行RE}说明递归对内存有一定的消耗对应的循环......
  • uniapp中 引入uview组件库
    1、下载安装HBuilderX2、创建项目3、工具---插件安装--插件市场--前往插件市场安装--前端组件--通用组件--搜索(uview)--点击uview2.0(记得登录哦)4、选择项目,进行引入uView5、在main.js中//入口文件importAppfrom'./App'//#ifndefVUE3importVuefrom'vue'//uv......
  • BEV-IO: Enhancing Bird's-Eye-View 3D Detection with Instance Occupancy
    通过显式和隐式的Occupancy预测来做3D检测,用Occupancy弥补了深度图的局限性。设计了3D几何分支和特征传播分支,预测depth-occupancy权重来实现3D检测,由于点级Occupancy的构建依赖于bbox,使整个感知模型与检测任务强相关。Abstract传构建BEV表示的方法是基于显式预测的深度分布,将2D......
  • 深入理解 Java 方法重载与递归应用
    Java方法重载方法重载允许在同一个类中定义多个具有相同名称的方法,但参数列表必须不同。语法:returnTypemethodName(parameter1,parameter2,...,parameterN){//方法体}示例:publicclassMain{//重载add方法,支持int和double类型参数staticinta......
  • Oracle DataGuard 出现 GAP 修复
    下面我们通过实验来进行演示如何修复:一、主库切几个最新的归档,然后手工删掉,重新开启DG同步。1、备库关闭应用日志和数据库SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;Databasealtered.SQL>shutdownimmediateDatabaseclosed.Databasedismounted.OR......
  • oracle to mogdb 迁移---mtk工具
    一、MTK工具介绍MTK–异构数据迁移工具MTK全称为DatabaseMigrationToolkit,是一个可以将Oracle/DB2/MySQL/openGauss/SqlServer/Informix数据库的数据结构,全量数据高速导入到MogDB的工具。1.多数据库类型支持支持Oracle,DB2,openGauss,SqlServer,MySQL,Informix等数据库......
  • 记一次oracle单表改分区表 一波三折
    业务上要把单表还差分区表SQL>@seggwx.aopenSEG_MBOWNERSEGMENT_NAMESEG_PART_NAMESEGMENT_TYPESEG_TABLESPACE_NAMEBLOCKSHDRFILHDRBLK------------------------------------------------------------------------------------------------------------------......