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操作后,授权也会丢失?
我们是否必须再次分配权限?
有些人没有补助金.
将数据插入'thetable'的每日进程每N次插入执行一次提交,因此无法执行任何回滚.这就是我们使用2张桌子的原因.
提前致谢
是的,一旦您放弃该表,授权也将被删除.
您可以尝试创建一个VIEW选择thetable和授予SELECT.
你定期放桌子的策略对我来说听起来并不合适.你为什么要这样做?
编辑
除了每天丢桌子之外还有更好的方法.
thetable如果行有效,则向该状态添加另一列.
在该列上放置一个索引(或扩展您用于从该表中选择的现有索引).
为查询添加另一个条件,只考虑"有效"行或创建一个视图来处理它.
导入数据时,将新行设置为"新".导入完成后,您可以删除所有"有效"行,并在单个事务中将"新"行设置为"有效".
如果导入失败,您只需回滚事务即可.
| 归档时间: |
|
| 查看次数: |
11050 次 |
| 最近记录: |