SQL 代码推送、跟踪和审计

SQL Code Push, Tracking and Auditing

关于我的问题来源的一些背景知识:我的公司在全球拥有多个使用相同模式的数据库,我部门的职责之一是监控并确保所有这些数据库与来自架构 SQL 改变视角。

现在,我的问题是,是否有人知道任何具有前端 UI 的 Software/tool 能够执行以下操作(数字越小越重要):

  1. 能够跟踪 SQL 代码更改应用于哪个数据库以及何时应用。基本上,如果我们编写一个 SQL 查询来更改 table 的结构,并且我们需要将其应用于 80% 或 100% 的数据库,无论是通过手动输入还是一些自动检查,该工具都会告诉我,是的,这确实被应用了。
  2. 代码分发工具:我们给它包含代码的查询或文件,它能够推送到它需要的数据库(并为此创建审计日志)
  3. Code/object 存储库:跟踪自定义开发并推送到数据库的内容

我知道 SSIS 可能可以做其中的一些事情,但我们需要一个工具,它也有一个简单的前端界面,非 IT 人员也可以访问。 (*澄清:我们不打算让非 DBA 人员访问更改内容,只是针对所述工具的审计方面)

我试过在互联网上搜索,但我感觉我没有使用正确的词汇来获得我正在寻找的结果。

因此我想看看社区是否知道任何此类工具或类似工具?

尝试搜索以下两种系统之一:

  1. Release/Build/Deployment Automation 像 Serena 这样的复杂程序具有用于在任何地方推送、跟踪和审计任何类型的软件的模块。这些将包括所有 GUI 功能。但是您必须处理额外的数据库、配置、代理、工作流、顾问(?)等。这些程序更适合开发人员。
  2. 远程 Execution/Configuration 管理 更简单的程序,如 Salt、Fabric 和 Ansible,让您可以在任何地方 运行 操作系统命令。它们没有提供那么多的功能,您必须自己做更多的工作,但在某些方面这是一种解放。如果你确切地知道你想要什么命令 运行 你就不需要其他程序来帮助你了。这些程序更适合管理员。

从数据库管理员的角度来看,这些类型的程序的主要问题是其中none 是关系。是的,他们可以连接到数据库和 运行 脚本,但是 none 他们真的会说话 SQL。他们的母语是 Java、XML、SSH 等。这些技术没有任何问题,但如果您只关心数据库,那么您不想处理所有这些复杂性。

如果您对这些类型的程序都不满意,我建议您查看我的开源程序 Method5。它是作为 Oracle SQL 的扩展构建的远程执行程序。它完全在 Oracle 数据库中运行,因此您可以自行安装,不需要任何额外的网站、代理、配置文件、GUI 等。

根据您关于因链接而陷入困境的评论,以及 ,我认为这就是您逐渐致力于创建的程序。我的团队花了两千小时的开发和测试才把它做好,所以你放弃自己制作可能是明智的。

具体回答您的要求:

  1. 跟踪 更改存储在审计跟踪中。但更重要的是,它能够 a pre-built script 在一个视图中比较无限数量的模式。归根结底,您真正想知道的是 "are my schemas the same",不一定是 "did the same thing get run everywhere?".
  2. 代码分发 如果您只有 SQL 或 PL/SQL,通过 Method5 部署它会尽可能简单.只需指定您想要 运行 的内容,以及您想要 运行 的位置,如下所示: select * from table(m5('create index ...', 'dev, qa, prodDB1, prodDB2')); 该程序还没有 运行 SQL*加上脚本。但是,当您能够如此轻松地 运行 SQL 和 PL/SQL 时,就几乎不需要 SQL*Plus.

  3. 代码存储库 所有执行都存储在一个简单的 table、M5_AUDIT 中。它包含代码、谁 运行 它、他们在哪里 运行 它以及他们如何 运行 它。它并不是像 SVN 那样被设计成一个存储库,但它足以用于简单的审计和跟踪代码。

Method5 不包含 GUI,但在某些方面我认为这是一个功能。由于一切都是关联完成的,所以一切都在一个简单的 table 中。您可以使用任何现有的 GUI - Toad、PL/SQL Developer、Excel、Apex 等。这是一个强大的后端解决方案,有望为轻松构建简单的前端奠定良好的基础。