Oracle PL/SQL 调试权限含义

短跑

为了能够在 Oracle 数据库上调试 PL/SQL 代码,必须具有默认未授予的 DEBUG 权限(GRANT DEBUG CONNECT SESSION TO username)。

现在我开发了一些没有显式调试的 PL/SQL 过程(使用 DBMS_OUTPUT.PUT_LINE() 跟踪错误),因为我目前没有 DEBUG 权限。DWH DBA 在没有说明原因的情况下拒绝授予我此权限。在与他交谈之前,我想知道他拒绝授予我此权限的原因可能是什么。

拥有 DEBUG 权限有什么(安全或性能)影响?

杰夫史密斯

随着时间的推移,DBA 接受过培训或教导,通常会拒绝向用户授予特权的所有请求。

为什么?因为它通常会导致数据库暴露,而他们的第一项工作是保护数据库。

因此,在要求特权时,您需要为其制定商业案例。一般来说,人们会认为您只会在 DEVELOPMENT 实例中调试代码,而不是生产实例。如果您在 PRODUCTION 中要求此权限,他或她可能会告诉您不要在 PRODUCTION 中进行调试!

至于开销或特权的“成本” - 为调试编译 PL/SQL 确实会增加开销。换句话说,执行你的程序会花费更多。数据库收集的信息比平时多。您不希望您的 pl/sql 在生产环境中有这种开销 - 它只会减慢它的速度。

为了赢得你的案子,假设你在谈论一个开发实例 - 我认为在你的代码中包含 DBMS_OUTPUT 也会带来问题。投入生产前一定要记得把它关掉,而且效率低下。所以卖给 DBA 的好处是,生产中的 DBMS_OUTPUT 代码少担心。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章