批量创建同义词并授权
生活随笔
收集整理的這篇文章主要介紹了
批量创建同义词并授权
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
在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
總結
以上是生活随笔為你收集整理的批量创建同义词并授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次php手工注入(mysql)
- 下一篇: 存储过程中同一语句多个聚合函数时 int