0

我需要在我连接到的数据库中向名为“test”的用户授予添加、更新和删除权限。

语法是什么?我试过了:

db2 grant add, update, delete on database to test

没有运气。

我在 AIX 中使用 DB2 10(命令行)

4

1 回答 1

1

您必须检查可以在数据库及其对象中​​授予的权限类型。

我想“添加”是插入,但这是通过表而不是数据库授予的。更新和删除也是如此。

您可以授予自己权限,前提是您拥有更高的权限,例如 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

第一个命令仅通过访问目录即可生成所有授权。第二个,是执行第一个命令的输出。

您最终可以通过管道在一行中执行这两个命令,但是 Unix 限制会阻止输出。

db2 -x "select 'grant inser... ... pe = 'T'" | db2 +p -tv
于 2013-03-21T09:29:30.857 回答