oracle - 授予从一个特定模式中选择任何表
问题描述
我刚刚为我们的开发人员@我们的 oracle 数据库 11.2.0.4 创建了一个新的只读用户 (TEMPDBREAD)
现在他们喜欢从一个模式(TEMPDBUSER)中读取所有表的访问权限,
是否有另一种方法可以授予选择任何表。他们不应该能够阅读其他方案。但是由于表结构经常发生变化,因此很难手动证明一切。
这就是为什么 select any table 会很快被授予并且更容易放置 我可以拒绝访问其他方案吗?
有什么想法我可以很简单地解决这个问题吗?
BR朱利安
手动授予表访问权限 授予选择任何表
解决方案
没有。您要么给他们select any table
并让他们读取数据库中的任何表,要么给他们单独访问每个表的权限TempDBUser
。在绝大多数情况下,您希望让他们访问其中的每个表TempDBUser
(可能是通过角色,因为将有许多开发人员帐户需要运行查询)。
我不清楚为什么授予对象级访问权限对您来说是个问题。“表结构更改”不需要新的授权,因为它们只是对现有对象的更改。如果您的意思是频繁地创建新表,您只想将授权合并到您的更改控制和部署过程中。
如果您有一个定期创建新表的打包应用程序(一种糟糕的做法),您可以创建一个 DDL 触发器,该触发器在每次在TempDBUser
. 您需要一个 DDL 触发器,该触发器通过dbms_job
执行实际授权的包提交作业,这是一个相当复杂的架构,但它可以工作。
推荐阅读
- azure-devops - Azure 管道。重复任务而不重建项目
- sharepoint-2013 - SharePoint 2013 Designer 工作流:向分配的用户添加列表项编辑权限
- varchar - 如何将不同日期时间格式的DB2字符串列转换为日期时间?
- c# - 使用 Schema 验证无效的 json 数据不会因反序列化而失败
- python - 语音 AIY 套件加密错误中的 Cloudspeech 演示
- ubuntu - 如何使用 IntelliJ IDE 将 JavaFX 应用程序部署为 debian 包
- python - 如何链接到 Excel 单元格内 PDF 文档的特定页面?
- java - 如果json属性名称和java对象属性不同,如何将json字符串转换为java对象
- kubernetes - 在 IBM Cloud 中部署没有默认工作程序池的 K8S 集群
- python - 如何替换引号内和不带引号的反斜杠?