我需要将权限添加,更新和删除授予我所连接的数据库中名为“test”的用户。
语法是什么?我试过了:
db2 grant add, update, delete on database to test
没有运气。
我在AIX(命令行)中使用DB2 10
答案 0 :(得分:1)
您必须检查可以在数据库及其对象中授予的权限类型。
我认为“add”是insert,但是这是通过表而不是数据库授予的。更新和删除相同。
只有拥有超级权限(例如sysadm,dbadm或secadm)(取决于DB2版本和配置的安全性),您才能给自己授予权限。
例如:
db2 grant insert, update, delete on table db2inst1.emp to user test
授予模式db2inst1
中表emp的所有DML权限如果要将其授予所有表,则应生成授权语句:
db2 -x +o -z commands.sql "select 'grant insert, update, delete on table ' || trim(tabschema) || '.' || trim(tabname) || ' to user test;' from syscat.tables where type = 'T'" >
db2 -tvf commands.sql
通过访问目录,第一个命令生成所有授权的dinamycally。第二个是执行第一个命令的输出。
您最终可以通过管道在一行中执行这两个命令,但是有一个Unix限制可以阻止输出。
db2 -x "select 'grant inser... ... pe = 'T'" | db2 +p -tv