您如何处理Oracle中缺少架构级别特权的问题?Oracle的安全体系结构适用于只需要对象级特权的应用程序,并且适用于几乎不需要限制的DBA。但是,对于使用前端应用程序和多种模式的PL / SQL进行开发的程序员而言,体系结构中似乎存在很大的漏洞。这是我的一些缺点:
使每个程序员都按照自己的模式进行开发。DBA将向需要它们的程序员授予对象级别的特权。任何软件包开发都必须由DBA完成。主要缺点是程序员会像使用存储桶一样使用数据库,从而损害数据库性能。我希望程序员在数据库中进行开发,但是这种方法会大大不利于它。
为每个程序员提供他们需要进行开发的十几种模式的用户名/密码。向这些应用程序模式授予创建过程,表等的权限。这种方法的一些缺点是程序员必须维护多个登录名,并且必须很少自己登录。跨模式开发也很困难。
向程序员授予开发所需的每个模式的代理身份验证特权。这使他们可以自己登录,而不必授予他们代理权限以外的其他权限。缺点包括程序员必须为其代理的每个模式维护独立的连接,跨模式开发更加麻烦,因为连接必须不断更改,并且使用带有已通过身份验证的公共数据库链接的程序包无法在代理连接内部进行编译。
给每个程序员DBA特权。–这里的缺点是安全性。不能将任何模式程序员挡在任何模式之外,并且任何程序员都可以模仿任何其他程序员(DBA)。
似乎缺少一个选项来授予每个程序员SELECT / INSERT / CREATE / etc。他们需要在其中进行开发的模式具有特权。他们使用一个连接以自己的身份登录以完成工作。他们有权访问的架构中的新对象将立即可用。
我想念什么吗?您如何处理进行PL / SQL开发的应用程序程序员?