Oracle從A庫向B庫賦予權限,建立同義詞

步驟一:

declare 
  i number;
  s varchar(50);
  s_YXRAW varchar(50);
begin
  select user into s_YXRAW from dual;
  if s_YXRAW <> 'YXRAW' then return; end if;
  s:= 'PBP_QX'; -- 要導入的用戶
  
  -- 賦權限-----------賦權限必須在YXRAW用戶下執行
  --dbms_output.put_line('grant select, references, index on REC_TRADE to '|| s || ';');   -- 交易流水錶
  --dbms_output.put_line( 'grant EXECUTE on YXRAW.YXRAW_COMMON to '|| s ||';'); -- YXRAW通用包
  for i in (select table_name from user_tables where table_name not in ('BAS_SYSTEM_INFO','BAS_PAGE','USR_USER','BAS_SYSTEM_INFO','BAS_REPORT') order by table_name)
  loop
    dbms_output.put_line('grant select, insert, update, delete, references, alter, index on '|| i.table_name ||' to '|| s || ';');
  end loop;
  


-- 其他
/*
  dbms_output.put_line( 'declare');
  dbms_output.put_line( 's_YXRAW varchar(50);');
  dbms_output.put_line( 'begin');
  dbms_output.put_line( 'select user into s_YXRAW from dual;');
  dbms_output.put_line( 'if s_YXRAW = ''YXRAW'' then return; end if;');
*/
  -- 刪除表、創建同義詞,切不可在YXRAW用戶下執行
  -- 刪除同名表
  /*for i in (select table_name from user_tables)
  loop
    dbms_output.put_line('DROP TABLE '|| i.table_name ||' CASCADE CONSTRAINTS; ');
  end loop;*/

  -- 創建同義詞
  --dbms_output.put_line( 'CREATE OR REPLACE EDITIONABLE SYNONYM "'|| s ||'"."YXRAW_COMMON" FOR "'|| s_YXRAW ||'"."YXRAW_COMMON";');
  --dbms_output.put_line( 'CREATE OR REPLACE EDITIONABLE SYNONYM "'|| s ||'"."REC_TRADE" FOR "'|| s_YXRAW ||'"."REC_TRADE";'); 
  for i in (select table_name from user_tables where table_name not in ('BAS_SYSTEM_INFO','BAS_PAGE','USR_USER','BAS_SYSTEM_INFO','BAS_REPORT') order by table_name)
  loop
    dbms_output.put_line('CREATE OR REPLACE EDITIONABLE SYNONYM "'|| s ||'"."'|| i.table_name ||'" FOR "'|| s_YXRAW ||'"."'|| i.table_name ||'";');
  end loop;
  
  -- dbms_output.put_line( 'end;');
  
  -- grant select, insert, update, delete, references, alter, index on RPT_ACCOUNT_CATEGORY to PAM
  
  
end;

步驟二:
在YXRAW庫(賦值庫)中執行上半部分語句,在PBP_QX(被賦同義詞庫)執行下半部分語句:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章