Oracle 批量創建授權語句

在一些安全要求比較高的系統建設過程中,建表和訪問表的用戶是區分開來的, 且需要授權。建表用戶可能同時擁有多個項目的表,只針對某個項目的表授權,有時候表太多了,一個一個寫比較費時間。那就需要用sql腳本來批量生成授權語句。

直接上代碼模板:

select '[需要授權的權限,select,update,insert,delete] on '||t.owner||'.'||t.table_name||' to [被授權的用戶];' as grantSQL 
from all_all_tables t where t.owner in ('[表屬主]') and table_name like '[項目表統一前綴]%'

注意:

這裏的owner 表屬主 和 tablename 表明 是大小寫敏感的!

實例講解:

select 'grant select, insert, update, delete on '||t.owner||'.'||t.table_name||' to myToGrantUser;'  as grantSQL 
from all_all_tables t where t.owner in ('myTableOwner') and table_name like 'myTablePrefix%'

這個實例的作用就是構造將屬組爲myTableOwner用戶下所有表名以myTablePrefix開頭的表的增刪查改的權限授予myToGrantUser這個用戶。all_all_tables可以看到所有表, || 是oralce中的字符串鏈接符,在生成各種sql腳本的時候很有用。讀者可以根據自己的實際需要,自行調整授予的權限,以及where後面的條件。

效果:可以看到生成了授權語句





發佈了85 篇原創文章 · 獲贊 73 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章