SQL代码推送,跟踪和审计

时间:2017-02-08 19:34:38

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

关于我的问题来自哪里的背景:我的公司在全球有多个使用相同架构的数据库,而我的部门负责监控并确保所有这些数据库都在从模式SQL更改角度进行同步。

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

  1. 能够跟踪在哪个数据库和何时应用了哪些SQL代码更改。基本上,如果我们编写一个改变表结构的SQL查询,我们需要将它应用于DB的80%或100%,通过手动输入或一些自动检查工具会告诉我是的,这确实是应用
  2. 代码分发工具:我们为其提供查询或包含代码的文件,并且它能够推送到所需的数据库(并为其创建审核日志)
  3. 代码/对象存储库:跟踪自定义开发和推送到数据库的内容
  4. 我知道SSIS可能会做其中的一些事情,但我们需要一个工具,它还有一个简单的前端界面,非IT人员可以访问。 (*澄清:我们不打算让非DBA人员访问更改内容,只是对所述工具的审计方面)

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 发布/构建/部署自动化像Serena这样的复杂程序,可以在任何地方提供用于推送,跟踪和审核任何类型软件的模块。这些将包括所有的GUI铃声和口哨声。但是你必须处理额外的数据库,配置,代理,工作流程,顾问(?)等。这些程序更多地面向开发人员。
  2. 远程执行/配置管理简单的程序,如Salt,Fabric和Ansible,可让您在任何地方运行操作系统命令。他们没有提供尽可能多的功能,你必须自己做更多的工作,但在某些方面可以解放。如果您确切地知道要运行哪些命令,那么您就不需要其他程序。这些计划更倾向于管理员。
  3. 从数据库管理员的角度来看,这些类型的程序的主要问题是它们都不是关系。是的,他们可以连接到数据库并运行脚本,但他们都没有真正说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这样的存储库,但它对于简单的审计和跟踪代码来说已经足够了。

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