在更新B架构中的表时,我获得的权限不足。表所有者是一个模式,但我已经给B模式提供了更新授权,即使这样也会抛出错误。如果我给予Select授权以及更新它是有效的。如果我只想更新表,为什么我需要提供select grant和update。我正在使用Exadata作为我的后端版本
答案 0 :(得分:0)
更新有效,无需授予选择权限,如下所示。我在这个测试用例中使用了Oracle。
SQL>创建由test1 profile default;
标识的用户test1用户创建。
SQL> grant connect,resource to test1;
格兰特成功了。
SQL>创建由test2 profile default;
标识的用户test2用户创建。
SQL> grant connect,resource to test2;
格兰特成功了。
SQL>连接test1 / test1 连接的。 SQL> create table abc(name varchar2(20));
创建表。
SQL>插入test1.abc值(' xyz');
创建了一行。
SQL>承诺 2;
提交完成。
SQL>从test1.abc中选择* 2;
XYZ
SQL>将test1.abc上的更新授予test2;
格兰特成功了。
SQL>连接test2 / test2 连接。
SQL>更新test1.abc set name =' XXYYZZ' ;
更新了一行。
SQL>承诺 2;
提交完成。
SQL>连接test1 / test1 连接的。 SQL> select * from abc;
XXYYZZ