oracle中执行select ... for update需要什么权限?

oracle中执行select … for update需要什么权限?

问题

在oracle中,一个用户执行select … for update需要什么权限?

分析测试

用户1: test_0614
用户2:test
目标表:test.t_0614
执行语句:select * from test.t_0614 where object_id=16 for update;

只给select 权限

grant select on test.t_0614 to test_0614;

发现sql可以执行成功,但在提交时报权限不足。此时有Row-X 行独占(RX)
在这里插入图片描述在这里插入图片描述

只给update权限

grant update on test.t_0614 to test_0614;

sql语句在执行失败,报权限不足。
在这里插入图片描述

给select + update 权限

grant update on test.t_0614 to test_0614;
grant select on test.t_0614 to test_0614;

sql能正常执行,也能正常提交。
在这里插入图片描述

总结

1、只需要select权限就能执行select…for update (不能提交修改,但会锁表),所以这里可能会被坑。
2、完整执行select…for update 需要select+update 权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值