允许用户编译/运行 PLSQL 和 SQL

Ora*_*Nob 0 oracle plsql

作为 DBA - 假设我的用户熟悉 PLSQL 和 SQL - 为什么我授予我的用户编译和运行他们自己的 PLSQL 代码的权限。我们有一个 MI 数据库环境,其中数据经过了 ETL。这些表包含大量行,但行的大小不一定很大。分析 - 将是 - 我假设自然界中的微积分。用户希望在数据上运行他们自己的代码以进行临时分析——在他们自己的模式中。他们来自 SAS 背景,据我所知,这使他们能够编写和运行自己的数据分析。尽管如此,SAS 运行在它自己的数据集上——从 Oracle 或其他地方提取。

在我看来,这是一个危险的设置——但没有回答我自己的问题——有什么陷阱?

小智 6

我认为作为一名 DBA,您将不可避免地失去将双手置于数据库之外的斗争。话虽如此,我认为我们应该为客户尝试并提供他们可以使用的产品。任何 DBA 都应该意识到,即使是只读访问也存在危险和陷阱:

  1. 您承认您正在处理表格中的大量记录。当用户无意中发出笛卡尔连接时,您的游戏计划是什么?
  2. 如果您谈论的是读/写访问,您将如何让这些用户对其行为负责?如果涉及财务数据 (SOX),那么仅仅证明您正在审核对敏感数据的修改是不够的,您必须表明您已经完全删除了它们的能力。
  3. 如果这是生产环境,您是否重新配置了 DR/备份解决方案?如果您的备份解决方案涉及使数据库脱机,那么如果用户在 DBMS_JOB 中放置一个过程以在此期间运行,您的解决方案是什么?
  4. 最后,可能也是最重要的,谁来支持他们的代码?如果您的组织有一个开发团队,但他们没有提供支持,我可以保证,作为 DBA,一旦出现问题,您就会受到指责。预先提出这个期望。

我认为这已经足够了,但我想总而言之,我的答案是:
“永远不会在生产中,也永远不会在 QA 中。如果你想运行代码,你就支持它,然后你将它打包成可部署的格式,这样我就可以推送出来吧。如果你想表现得像个开发人员,我会像对待开发人员一样对待你。”