首页 > 解决方案 > 授予从一个特定模式中选择任何表

问题描述

我刚刚为我们的开发人员@我们的 oracle 数据库 11.2.0.4 创建了一个新的只读用户 (TEMPDBREAD)

现在他们喜欢从一个模式(TEMPDBUSER)中读取所有表的访问权限,
是否有另一种方法可以授予选择任何表。他们不应该能够阅读其他方案。但是由于表结构经常发生变化,因此很难手动证明一切。

这就是为什么 select any table 会很快被授予并且更容易放置 我可以拒绝访问其他方案吗?

有什么想法我可以很简单地解决这个问题吗?

BR朱利安

手动授予表访问权限 授予选择任何表

标签: oracleplsqltoad

解决方案


没有。您要么给他们select any table并让他们读取数据库中的任何表,要么给他们单独访问每个表的权限TempDBUser。在绝大多数情况下,您希望让他们访问其中的每个表TempDBUser(可能是通过角色,因为将有许多开发人员帐户需要运行查询)。

我不清楚为什么授予对象级访问权限对您来说是个问题。“表结构更改”不需要新的授权,因为它们只是对现有对象的更改。如果您的意思是频繁地创建新表,您只想将授权合并到您的更改控制和部署过程中。

如果您有一个定期创建新表的打包应用程序(一种糟糕的做法),您可以创建一个 DDL 触发器,该触发器在每次在TempDBUser. 您需要一个 DDL 触发器,该触发器通过dbms_job执行实际授权的包提交作业,这是一个相当复杂的架构,但它可以工作。


推荐阅读