开发人员应该在Dev数据库实例中拥有哪些权限

And*_*ndy 5 oracle permissions database-administration

......以及如何授予这些权限.我在一个拥有70多个应用程序的大型IT部门工作,一些在SQL服务器中,一部分在Oracle中.每个系统都有一个prod,QA和Dev实例.我们(我是开发人员)只能访问prod/qa,我很高兴.在SQL服务器开发实例中,devs被赋予db_owner,它完全正常.争论的焦点是我在DEV oracle数据库中应该拥有哪些权限.

我认识到最好的情况是让每个开发人员在他们的工作站上运行他们自己的实例进行开发,但由于数据库的大小,这不被认为是一种选择.

我也对如何应用这些权限感兴趣.在PL/SQL执行期间,通过角色授予的oracle权限不活动,因此角色(甚至"dba"角色)无效.这使得使用内置帐户(系统)或在数十个数据库中创建数十个用户并直接向每个用户授予数十个权限.在我看来,只是让开发人员登录系统是很有意义的,但我们的DBA声称这是一个坏主意.

Dav*_*vid 4

我们过去只允许开发人员访问应用程序帐户。这适用于小商店,但随着开发商数量的增加,这种情况很快就会失控。

这是我们现在要做的:

  1. 应用程序有自己的帐户(也称为模式)。
  2. 开发者有自己的账户
  3. 数据驻留在应用程序架构中
  4. 我们有一个 ant 构建脚本,可以将代码构建到您想要的任何模式中。
    • 代码包括视图、包、对象等。
    • 构建脚本包括运行存储过程以向开发人员授予对应用程序数据的显式权限的步骤
  5. 开发人员对自己的架构进行更改
  6. 当高兴的时候,他们就会将其检查为颠覆
  7. 应用程序的开发架构是根据新的 subversion 版本构建的。
  8. 开发人员可以检查并重建自己的环境。
  9. 对表结构的 DDL 更改是通过 DBA 完成的
    • 这些也可以编写脚本

这样做的好处是确保任何前端应用程序都不会被数据库开发人员不断重建所有内容而破坏。