自動為新建的表建立同義詞
問題提出:
為了控制使用者許可權,給某些使用者只有查詢系統的許可權,但是這樣帶來的維護麻煩是每次系統建立了新的表,都需要給查詢使用者對這個表的查詢許可權授權,然後查詢使用者使用的時候不方便,要加上使用者的字首才能使用。這裡提供一個自動為新建立的表進行授權和建立同義詞的辦法。
[@more@]解決的辦法就是使用系統觸發器,當在一個schema上建立一個表的時候,就使用動態語句來執行授權和建立同義詞的語句。問題的難點是如果單純使用execute immedite來建立同義詞,則會報許可權不足,怎麼都搞不定。後來搜尋了一下,tom提供了下面的方法,就是把任務提交到一個job,使用job來完成建立同義詞的工作,問題得到解決。
結合上一篇發表的一個自殺程式,可以看到,很多東西如果程式做起來不方便,可以透過job進行變通,讓job來完成我們需要的工作。
CREATE OR REPLACE TRIGGER AUTO_CREATE_SYNONYM
AFTER CREATE ON SCHEMA
DECLARE
V_STR VARCHAR2(200);
V_JOB NUMBER;
BEGIN
IF (ORA_DICT_OBJ_TYPE = 'TABLE') THEN
--判斷建立的物件是否是表
V_STR := 'execute immediate "grant select on ' || ORA_DICT_OBJ_NAME ||
' to query";';
--為查詢使用者query授權
DBMS_JOB.SUBMIT(V_JOB, REPLACE(STR, '"', ''''));
V_STR := 'execute immediate "create or replace synonym query.' ||
ORA_DICT_OBJ_NAME || ' for ' || ORA_DICT_OBJ_NAME || '";';
--建立同義詞
DBMS_JOB.SUBMIT(V_JOB, REPLACE(STR, '"', ''''));
END IF;
EXCEPTION
WHEN OTHERS THEN
MAIL_TOOLS.MAIL_FILES('');
END AUTO_CREATE_SYNONYM;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-926488/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20191122]schama建立同義詞.txt
- Access建立表/新建表
- oralce 跨使用者訪問表 同義詞
- 中考常見同義詞和同義短語總結
- 匯出oracle公有同義詞Oracle
- 6.5. 常用物件——6.5.4. 同義詞物件
- 同義詞相似度可以怎樣計算
- 【學習】SQL基礎-017-同義詞SQL
- Kibana的Dev Tools中建立自定義分詞器dev分詞
- vs2022+resharper建立模板——實現在新建檔案的時候自動生成防衛式宣告和自定義語句
- Elasticsearch:使用同義詞 synonyms 來提高搜尋效率Elasticsearch
- 2.5.5 使用自動Undo管理: 建立 Undo 表空間
- 古詩詞 中文 分詞 自動化分詞
- 工廠模式建立物件和自定義建構函式建立物件的異同模式物件函式
- 小程式客服如何設定自定義關鍵詞自動回覆的開發方案。
- PostgreSQL 建立主鍵自增表的 DDLSQL
- Laravel 資料表按月份水平分表,表不存在,自動建立生成Laravel
- NeurIPS 2024 | 大模型的詞表大小,同樣適用於Scaling Law大模型
- 黃反詞介面 詞典自動化校驗
- Springboot專案啟動後自動建立多表關聯的資料庫與表的方案Spring Boot資料庫
- SpringBoot(04)——建立自己的自動配置Spring Boot
- Spring AOP 自動建立代理Spring
- Docker新建MySQL容器時自動初始化資料DockerMySql
- Elasticsearch 近義詞詞庫配置Elasticsearch
- 完整的牛津3000詞彙表及牛津5000詞彙表
- Flutter 自定義View——仿同花順自選股列表FlutterView
- [20200115]重新建立awr report.txt
- Windows共享訪問如何重新建立Windows
- Oracle RAC的自定義service自啟動Oracle
- Java如何搭建腳手架(自動生成通用程式碼),建立自定義的archetype(專案模板)Java
- jquery繫結未來新建立函式的方法onjQuery函式
- Oracle新建使用者、表空間、表Oracle
- idea自動建立實體類Idea
- oracle學習筆記(十四) 資料庫物件 索引 檢視 序列 同義詞Oracle筆記資料庫物件索引
- oracle之 手動建立 emp 表 與 dept 表Oracle
- 建立屬於自己的 Spring Boot 自動配置Spring Boot
- 給mybatis新增自動建表,自動加欄位的功能MyBatis
- mysql指令碼,新建表和理清表之間的聯絡MySql指令碼