我正在进行一个相当新的项目,我们仍在修改 Oracle 11g 数据库表的设计。因此,我们经常删除和重新创建我们的表,以确保我们的表创建脚本在我们进行更改时按预期工作。
我们的数据库由 2 个模式组成。一个模式有一些带有INSERT
触发器的表,这些触发器有时会导致数据被复制到我们的第二个模式中的表中。这要求我们使用管理员帐户登录数据库,例如,sysdba
并GRANT
访问第一个模式到第二个模式上的必要表,例如
GRANT ALL ON schema_two.SomeTable TO schema_one;
我们的问题是,每次我们对数据库设计进行更改并希望删除并重新创建我们的数据库表时,当表被删除时,我们的访问权限GRANT
就schema_one
消失了。因此,这创建了另一个烦人的步骤,其中我们必须使用管理员帐户登录,以便GRANT
每次删除并重新创建这些表中的一个时重新访问。
这没什么大不了的,但我很想从我们的开发和测试过程中消除尽可能多的步骤。有没有办法以GRANT
这样的方式访问表,即GRANT
-ed 权限在表被删除然后重新创建后仍然存在?如果这是不可能的,那么有没有更好的方法来解决这个问题?