如何防止Oracle Toad中的意外删除

时间:2018-07-28 14:45:59

标签: toad

是否可以在Oracle Toad中进行配置以防止意外执行SQL删除(例如忽略删除和更新功能)

2 个答案:

答案 0 :(得分:1)

据我所知,没有。

但是,为什么要打扰您呢?如果您删除了您不想删除的内容,(n_components,n_features)将会一切正常。

还有,“偶然”是什么?你怎么“不小心”做

ROLLBACK

很多类型的输入,不能偶然

如果是关于工具栏的“删除”按钮,那么-可能是偶然的。我不确定您可以限制它。

但是,您可以通过创建数据库触发器(例如

)来禁止删除行
delete from some_table where ...;

缺点是必须为每个表分别创建它。如果它适用于整个架构,那将是很好的选择(但不适用;我们无法在整个架构上创建这样的触发器):

SQL> create or replace trigger trg_bd_emp
  2    before delete on emp
  3    for each row
  4  begin
  5    raise_application_error(-20000, 'Not allowed');
  6  end;
  7  /

Trigger created.

SQL> delete from emp where ename = 'KING';
delete from emp where ename = 'KING'
            *
ERROR at line 1:
ORA-20000: Not allowed
ORA-06512: at "SCOTT.TRG_BD_EMP", line 2
ORA-04088: error during execution of trigger 'SCOTT.TRG_BD_EMP'


SQL>

或者,您可以创建一个新用户,向其授予当前表的特权(例如SQL> create or replace trigger trg_bd_emp 2 before delete on scott.schema 3 for each row 4 begin 5 raise_application_error(-20000, 'Not allowed'); 6 end; 7 / before delete on scott.schema * ERROR at line 2: ORA-30507: normal triggers cannot be based on a schema or a database SQL> ,但不授予SELECT, INSERT, UPDATE),然后让新用户操作数据,而不是所有者(谁可以用自己的数据做任何想做的事情。

答案 1 :(得分:0)

在“登录”窗口中,您会在左侧看到已保存的连接。有一个只读列。检查您希望保护的每个连接。这是一个核心选​​择,也将阻止您创建和插入。它可能比您想要的更具侵略性。