ORACLE:删除对象时是否删除了授权?

Tom*_*Tom 3 oracle rename grant ora-00942 sql-drop

我目前有两个模式,A和B.

B有一个表,A执行选择插入和更新.

在我们的sql脚本中,我们已授予A权限,以便它可以完成其任务.

grant select on B.thetable to A
etc,etc
Run Code Online (Sandbox Code Playgroud)

现在,表'thetable'被删除,另一个表每天至少重命名为B.

rename someothertable to thetable
Run Code Online (Sandbox Code Playgroud)

执行此操作后,当A执行B.thetable上的选择时,我们会收到错误.

ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)

是否有可能在执行drop + rename操作后,授权也会丢失?

我们是否必须再次分配权限?

更新

有些人没有补助金.

UPDATE2

将数据插入'thetable'的每日进程每N次插入执行一次提交,因此无法执行任何回滚.这就是我们使用2张桌子的原因.

提前致谢

Pet*_*ang 7

是的,一旦您放弃该表,授权也将被删除.

您可以尝试创建一个VIEW选择thetable和授予SELECT.

你定期放桌子的策略对我来说听起来并不合适.你为什么要这样做?

编辑

除了每天丢桌子之外还有更好的方法.

  1. thetable如果行有效,则向该状态添加另一列.

  2. 在该列上放置一个索引(或扩展您用于从该表中选择的现有索引).

  3. 为查询添加另一个条件,只考虑"有效"行或创建一个视图来处理它.

  4. 导入数据时,将新行设置为"新".导入完成后,您可以删除所有"有效"行,并在单个事务中将"新"行设置为"有效".

如果导入失败,您只需回滚事务即可.