【问题标题】:SQL Code Push, Tracking and AuditingSQL 代码推送、跟踪和审计
【发布时间】:2017-02-24 13:12:34
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我的第一个想法是,我会解雇任何希望允许非数据库专家(专业构建团队人员除外)将数据库更改推送到数据库的人。如果您不是 DBA,您不应该有权做这些事情。
  • 是的,我们不打算提供该选项。更重要的是,他们可以从审计的角度进行访问。此外,即使对于作为 DBA 的我们来说,考虑到我们还有许多其他职责,我们也不希望通过开发一些仅通过 DB Links 或类似的东西来执行此操作的后端工具而陷入困境。因此,我们更愿意找到具有用户界面的东西,以使事物更加透明和可见。

标签: sql oracle tracking change-tracking code-auditing


【解决方案1】:

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

  1. 发布/构建/部署自动化 像 Serena 这样的复杂程序,具有用于随时随地推送、跟踪和审核任何类型软件的模块。这些将包括所有 GUI 的花里胡哨。但是您必须处理额外的数据库、配置、代理、工作流、顾问(?)等。这些程序更适合开发人员。
  2. 远程执行/配置管理 更简单的程序,如 Salt、Fabric 和 Ansible,可让您在任何地方运行操作系统命令。它们没有提供那么多的功能,而且你必须自己做更多的工作,但在某些方面这是解放的。如果您确切知道要运行哪些命令,则不需要其他程序牵着您的手。这些程序更适合管理员。

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

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

根据你关于被链接卡住的评论和my answer to your question about half a year ago,我认为这是你逐渐走向创建的那种程序。我的团队花了几千个小时的开发和测试才把它弄好,所以放弃自己制作可能是明智之举。

具体回答您的要求:

  1. 跟踪 更改存储在审计跟踪中。但更重要的是,它能够和a pre-built script 比较无限数量的模式,所有这些都在一个视图中。归根结底,您真正想知道的是“我的架构是否相同”,而不一定“是否到处都运行相同的东西?”。
  2. 代码分发 如果您只有 SQL 或 PL/SQL,那么通过 Method5 进行部署将尽可能简单。只需指定要运行的内容和运行位置,如下所示:select * from table(m5('create index ...', 'dev, qa, prodDB1, prodDB2')); 该程序(尚未)运行 SQL*Plus 脚本。但是,当您能够如此轻松地运行 SQL 和 PL/SQL 时,就几乎不需要 SQL*Plus。

  3. 代码库所有执行都存储在一个简单的表中,M5_AUDIT。它包含代码、运行者、运行位置以及运行方式。它不是为像 SVN 这样的存储库而设计的,但对于简单的审计和跟踪代码来说已经足够了。

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

【讨论】:

  • 这听起来就像我们正在寻找的东西。非常感激!对于 Method5:它是否也适用于 Microsoft SQL Server? (我们实际上在 Oracle 和 MSQL 上使用了相同的模式:|)
  • @EkeshOkor 不,它只是 Oracle。如果您需要与数据库无关的东西,您可能需要研究 Flyway 或 Liquibase。
  • @John Heller:感谢!
猜你喜欢
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 2015-10-23
  • 2018-10-23
  • 2018-09-06
相关资源
最近更新 更多