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