【DB2】普通用戶最小查詢權限分配


1. 通過實例用戶或者有dbadm權限的用戶連接數據庫

db2 connect to <db-name>

2. 分配普通用戶連接權限
db2 "grant connect on database to user db-user"

3. 分配用戶使用默認workload權限
否則報 SQL5193N 錯誤
db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to user db2read"

 

4. 使用圖形化工具查詢表時,可能報錯
db2 "grant execute on package nullid.syssh200 to user db-user"

 

當在數據庫多時,可以使用下面語句生成grant權限語句
先將語句進行測試,測試通過后,沒問題,然后執行語句
db2 list db directory | grep -i "Database alias" | awk '{print "db2 connect to " $4 "; db2 -x \"select '\''grant select on table '\'' || trim(tabschema) || '\''.'\'' || trim(tabname) || '\'' to user db2read;'\'' from syscat.tables\" > grant_db.sql"}'

輸出類似的結果:

db2 connect to SAMPLE; db2 -x "select 'grant select on table ' || trim(tabschema) || '.' || trim(tabname) || ' to user db2read;' from syscat.tables" > grant_db.sql

執行上面的語句,確認grant_db.sql無誤之后,執行下面語句生成執行語句

db2 connect to SAMPLE; db2 -x "select 'grant select on table ' || trim(tabschema) || '.' || trim(tabname) || ' to user db2read;' from syscat.tables" > grant_db.sql;db2 -tvf grant_db.sql

然后執行生成的語句,即可。

 

后續會寫個腳本完成,該功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM