Oracle数据库,在数据库之间移动更改

Oracle数据库,在数据库之间移动更改,oracle,plsql,Oracle,Plsql,我们有一个应用程序,其中所有逻辑都是使用pl/sql在oracle数据库中实现的 我们有不同的oracle数据库用于开发和生产 当开发人员在测试后对开发数据库进行更改时,我们使用toad的模式比较工具将更改从开发数据库移动到生产数据库。这里的问题是开发人员必须拥有生产数据库的密码。我们只想让管理员知道这个密码 有谁能给我一个更好的建议,在不需要生产数据库密码的情况下在数据库之间移动更改,这方面的最佳实践是什么 我在oracle OTN论坛上发布了这个问题,并在那里得到了一些建议。也许有人会感兴趣

我们有一个应用程序,其中所有逻辑都是使用pl/sql在oracle数据库中实现的

我们有不同的oracle数据库用于开发和生产

当开发人员在测试后对开发数据库进行更改时,我们使用toad的模式比较工具将更改从开发数据库移动到生产数据库。这里的问题是开发人员必须拥有生产数据库的密码。我们只想让管理员知道这个密码

有谁能给我一个更好的建议,在不需要生产数据库密码的情况下在数据库之间移动更改,这方面的最佳实践是什么

我在oracle OTN论坛上发布了这个问题,并在那里得到了一些建议。也许有人会感兴趣。
Her是一个

我不建议使用比较工具来生成数据库迁移脚本。 开发和生产数据库(以及测试数据库)必须相同,但开发人员在开发数据库中所做的当前更改除外。一般来说,此断言是不正确的,因为开发数据库和生产数据库之间存在多种差异,例如分区对象、用于审核的其他对象(触发器、表)、基于复制的对象(快照)、不同的表空间等。 每个开发人员都必须知道,他对开发数据库进行了哪些更改。 若开发人员能够更改开发人员数据库中的模式和数据,那个么他/她必须能够为这些DDL和DML更改创建程序

委派同一个开发人员在生产数据库上运行这些迁移程序是一个坏主意。但如果没有更好的数据库迁移方法,则可以使用以下方法之一:

1. Configure Oracle authentication by OS. OS authentication allows Oracle to pass
   control of user authentication to the operating system.

2. TOAD can save passwords without disclose them. DBA will insert required password
   to local TOAD installation at developer PC (if developers use PC).

执行差异是部署更改的一种非常糟糕的方式。所有PL/SQL代码都应存储在版本控制系统(Subversion、Git等)中,并使用这些脚本应用于目标数据库。然后管理员只需要应用来自版本控制系统的(最新)脚本。