gpt4 book ai didi

甲骨文 :Are grants removed when an object is dropped?

转载 作者:行者123 更新时间:2023-12-01 09:39:29 24 4
gpt4 key购买 nike

我目前有 2 个架构,A 和 B。

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

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

grant select on B.thetable to A
etc,etc

现在,表 'thetable' 被删除,并且每天至少一次将另一个表重命名为 B。

rename someothertable to thetable

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

ORA-00942: table or view does not exist

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

我们必须再次分配权限吗?

更新

someothertable 没有授权。

更新2

将数据插入“thetable”的日常流程每 N 次插入执行一次提交,因此无法执行任何回滚。这就是我们使用 2 个表的原因。

提前致谢

最佳答案

是的,一旦您删除表,授权也会被删除。

您可以尝试从 thetable 中选择创建一个 VIEW 并在其上授予 SELECT

不过,我觉得你定期丢 table 的策略听起来不太对劲。为什么必须这样做?

编辑

有比每天丢 table 更好的方法。

  1. thetable 添加另一列,说明该行是否有效。

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

  3. 向您的查询添加另一个条件以仅考虑“有效”行或创建一个 View 来处理它。

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

如果导入失败,您可以回滚您的事务。

关于甲骨文 :Are grants removed when an object is dropped?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com