结论
- 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>