我正在使用TypeORM,我想知道是否有办法防止对数据库进行任何编辑。我不完全确定我的实体是否会在数据库中创建或编辑列或表,我不希望这种情况发生,就像设置表之间的关系一样,我不希望 TypeORM 创建一个新的外键如果它不存在。
我想你可以创建一个引发异常的DDL触发器。
create or replace trigger prevent_ddl_trg
before ddl on schema
declare
begin
raise_application_error(-20001, 'DDL not allowed')
end;
在 11.2 及更高版本中,这似乎允许对触发器本身进行更改和丢弃。
您可以通过以下方式禁用:
alter trigger prevent_ddl_trg disable;
并启用:
alter trigger prevent_ddl_trg enable;
不过要小心,您可能会阻止您意想不到的事情,例如重置自己的密码的能力。