有什么办法可以阻止表更新吗?

use*_*446 0 oracle plsql

正如标题所说,是否可以防止表中的数据被更新呢?我尝试使用以下触发器

CREATE OR REPLACE TRIGGER block_payment_update
BEFORE UPDATE ON payment  
DECLARE 
e_no_update_allowed EXCEPTION;
BEGIN
    RAISE e_no_update_allowed;
    EXCEPTION WHEN e_no_update_allowed THEN
    dbms_output.put_line('Updating PAYMENT table is not allowed');
END;
Run Code Online (Sandbox Code Playgroud)

我知道可以使用LOCK TABLE statementwith SHARE ROW EXCLUSIVE,但是它是否也有可能阻止向表中插入数据?

小智 5

像评论的朋友一样,你可以REVOKE更新你的数据库中的权限,这里有一个例子。

REVOKE UPDATE ON table to <username>
Run Code Online (Sandbox Code Playgroud)

可能有用的信息:

GRANT 创建权限规则

REVOKE 删除权限规则