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