首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pragma限制引用的替换

Pragma限制引用的替换
EN

Database Administration用户
提问于 2014-10-20 01:26:46
回答 2查看 426关注 0票数 3

最多可达到Oracle11.1,您可以通过添加PRAGMA RESTRICT_REFERENCES(默认,WNDS)将包标记为仅从数据库中读取;

这一点现在已不受欢迎。我想在其中一些包上强制只读。

  • 这将有助于确保初级开发人员不会仅仅因为
  • 它使在只读包上授予execute来报告用户变得更干净。

有什么替代方法可以强制包只从数据库中读取吗?

EN

回答 2

Database Administration用户

发布于 2016-09-09 20:42:44

我有几个糟糕的答案。我希望他们中的一个为你工作。

  1. 将包移动到另一个架构可能是一个选项。然后,您可以授予该其他架构一个最低限度的权限集。不过,对于名字的解析来说,这会变得很难看。
  2. 通过搜索模式来审核代码可能是另一种选择:从dba_source选择*,其中模式= 'ME‘,名称为'MYPROC’和( '%UPDATE %‘或上级(文本)类似'%INSERT %’或上级(文本)类似'%DELETE %');
  3. 将包定义为AUTHID CURRENT_USER将使运行时的权限缩减到调用用户的权限。这个解决方案有它自己的蠕虫。
票数 1
EN

Database Administration用户

发布于 2017-01-17 15:58:47

不,PRAGMA限制引用没有直接替换…然而,该特性未被删除,仅被弃用。

但是,进一步看,您的问题假设不能信任这些开发人员不添加写命令,但是可以信任这些开发人员不会删除PRAGMA或创建另一个没有它的包。虽然您的问题在技术层面上是合理的,但您真正的问题似乎是代码评审和/或管理问题。以下是一些可能有助于解决这一问题的建议。

  • 通过创建一个指定它们的命名约定,或者按照durette的建议,使这些包的只读目的变得清晰,将它们移动到不同的模式。(我喜欢不同的模式方法)。
  • 作为对这些初级开发人员正在进行的培训的一部分,请明确哪些包应该视为只读包。
  • 让更受信任的开发人员检查这些开发人员编写的代码。(对于所有开发人员来说,这是一个好主意)。所建议的查询杜雷特可以是技术审查过程中使用的一种工具。
  • 让管理人员在初级开发人员违反您的开发标准时提供更多的代码检查和补救。
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/80609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档