日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量创建同义词并授权

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量创建同义词并授权 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在SYS用戶下執行:

CREATE OR REPLACE PROCEDURE P_CRSYN_GRANT(V_USER IN VARCHAR2, V_OBJECT_OWNER IN VARCHAR2) IS----V_USER 需要授權的用戶 ----V_OBJECT_OWNER 對象所有者CURSOR C_SQL_STR IS SELECT 'CREATE OR REPLACE PUBLIC SYNONYM '||OBJECT_NAME ||' FOR '||V_OBJECT_OWNER||'.'||OBJECT_NAME CREATE_SQLFROM DBA_OBJECTSWHERE OBJECT_TYPE IN('TABLE', 'VIEW', 'PROCEDURE', 'TRIGGER', 'FUNCTION', 'PACKAGE','SEQUENCE') AND OWNER = UPPER(V_OBJECT_OWNER); --定義索引表數據類型TYPE REG_TABLE_TYPE IS TABLE OF VARCHAR2(1000)INDEX BY BINARY_INTEGER; --聲明索引表數據類型的變量 V_SELECT_TABLE REG_TABLE_TYPE;--定義參考游標數據類型 TYPE V_REF_CURSOR IS REF CURSOR ; --聲明參考游標數據類型的變量 C_SQL V_REF_CURSOR;V_GRANT_STR VARCHAR2(2000);BEGINFOR V IN C_SQL_STR LOOPEXECUTE IMMEDIATE V.CREATE_SQL;END LOOP;V_SELECT_TABLE(1) := 'SELECT ''GRANT SELECT,INSERT,UPDATE,DELETE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''TABLE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(2) := 'SELECT ''GRANT SELECT,INSERT,UPDATE,DELETE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''VIEW'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(3) := 'SELECT ''GRANT EXECUTE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''PROCEDURE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(4) := 'SELECT ''GRANT EXECUTE ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''FUNCTION'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';V_SELECT_TABLE(5) := 'SELECT ''GRANT SELECT ON '' ||OBJECT_NAME || '' TO ''||'''||V_USER ||''' SQLSTR FROM DBA_OBJECTS WHERE OBJECT_TYPE =''SEQUENCE'' AND OWNER = UPPER('''||V_OBJECT_OWNER||''')';FOR INT IN V_SELECT_TABLE.FIRST .. V_SELECT_TABLE.LAST LOOPOPEN C_SQL FOR V_SELECT_TABLE(INT); LOOPFETCH C_SQL INTO V_GRANT_STR; EXIT WHEN C_SQL%NOTFOUND;EXECUTE IMMEDIATE V_GRANT_STR;END LOOP;CLOSE C_SQL; END LOOP; END;

轉載于:https://blog.51cto.com/xumingjiang/1578625

總結

以上是生活随笔為你收集整理的批量创建同义词并授权的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。