0

我创建了一个新表,编写了包并为该包的一个用户提供了执行访问权限。是否有必要为这些任务创建回滚脚本?

  • 当表被删除时,触发器将被删除。我对吗?

  • 当包被删除时,执行权限将自动被删除。我对吗?

4

1 回答 1

1
  1. 是的,触发器必须始终用于表或视图 - 因此,如果您删除表(或视图,视情况而定),该对象上的所有触发器也将自动删除。*

  2. 是的,权限总是在一个对象上——如果你删除了这个对象(例如一个包),那个对象上的所有权限也将丢失。

如果您随后CREATE使用相同名称的新对象,旧的触发器和权限将不会神奇地重新出现 - 您必须手动添加它们。

或者,如果您CREATE OR REPLACE是一个包,则原始包的权限将保留。同样,如果你ALTER一个表,触发器不会受到影响。

* 在 Oracle 11g 中,默认情况下,已删除的表会移至回收站。如果表有任何触发器,它们也会被移动到回收站。

于 2013-01-30T05:42:43.297 回答