本文主要是介绍Oracle只读用户执行SELECT FOR UPDATE导致锁表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Oracle只读用户执行SELECT FOR UPDATE导致锁表
- 先说结论
- 实验验证
先说结论
📖 结论
- Oracle只读用户可以执行SELECT FOR UPDATE语句,但是在UPDATE时会报错权限不足。
- 如果某个只读用户对表T1执行了
SELECT * FOR UPDATE
(不加WHERE条件)后,没有提交/回滚事务、也没有断开数据库连接,其他用户在尝试对表T1的任意一行进行UPDATE、DELETE和SELECT FOR UPDATE操作时都会被阻塞。- 如果某个只读用户对表T1执行了
SELECT * FOR UPDATE
(加了WHERE条件)后,没有提交/回滚事务、也没有断开数据库连接,其他用户在尝试对表T1中WHERE条件过滤出来的行进行UPDATE、DELETE和SELECT FOR UPDATE操作时都会被阻塞。
实验验证
READER24用户对表RDR_NPC只有查询权限:
sys@ORA11G_0>
这篇关于Oracle只读用户执行SELECT FOR UPDATE导致锁表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!