-2

更新 B 模式中的表时权限不足。表所有者是 A 模式,但我已将更新授权授予 B 模式,即使这样它也会引发错误。如果我将 Select 授权与更新一起提供,它正在工作。如果我只想更新表,为什么我需要与更新一起提供选择授权。我使用 Exadata 作为我的后端版本

4

1 回答 1

0

更新工作,无需授予选择权限,如下所示。我在这个测试用例中使用了 Oracle。

SQL> 创建由 test1 配置文件默认标识的用户 test1 ;

用户创建。

SQL> 授予连接,资源到 test1 ;

格兰特成功了。

SQL> 创建由 test2 配置文件默认标识的用户 test2 ;

用户创建。

SQL> 授予连接,资源到 test2 ;

格兰特成功了。

SQL> 连接 test1/test1 已连接。SQL> 创建表 abc (name varchar2(20) ) ;

表已创建。

SQL> 插入 test1.abc 值 ('xyz') ;

创建了 1 行。

SQL> 提交 2 ;

提交完成。

SQL> select * from test1.abc 2 ;

姓名

xyz

SQL> 将 test1.abc 上的更新授予 test2 ;

格兰特成功了。

SQL> 连接 test2/test2 已连接。

SQL> 更新 test1.abc 设置名称='XXYYZZ' ;

更新了 1 行。

SQL> 提交 2 ;

提交完成。

SQL> 连接 test1/test1 已连接。SQL> 从 abc 中选择 * ;

姓名

XXYYZZ

于 2017-07-06T15:22:42.760 回答