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
然后執行生成的語句,即可。
后續會寫個腳本完成,該功能。