【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

然后执行生成的语句,即可。

后续会写个脚本完成,该功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值