我创建了一个新表,编写了包并为该包的一个用户提供了执行访问权限。是否有必要为这些任务创建回滚脚本?
当表被删除时,触发器将被删除。我对吗?
当包被删除时,执行权限将自动被删除。我对吗?
我创建了一个新表,编写了包并为该包的一个用户提供了执行访问权限。是否有必要为这些任务创建回滚脚本?
当表被删除时,触发器将被删除。我对吗?
当包被删除时,执行权限将自动被删除。我对吗?
是的,触发器必须始终用于表或视图 - 因此,如果您删除表(或视图,视情况而定),该对象上的所有触发器也将自动删除。*
是的,权限总是在一个对象上——如果你删除了这个对象(例如一个包),那个对象上的所有权限也将丢失。
如果您随后CREATE
使用相同名称的新对象,旧的触发器和权限将不会神奇地重新出现 - 您必须手动添加它们。
或者,如果您CREATE OR REPLACE
是一个包,则原始包的权限将保留。同样,如果你ALTER
一个表,触发器不会受到影响。
* 在 Oracle 11g 中,默认情况下,已删除的表会移至回收站。如果表有任何触发器,它们也会被移动到回收站。