Comment gérez-vous le manque de privilèges au niveau du schéma dans Oracle? L'architecture de sécurité d'Oracle fonctionne bien pour les applications qui n'ont besoin que de privilèges de niveau objet et elle fonctionne bien pour les administrateurs de base de données qui nécessitent peu de restrictions. Cependant, il semble y avoir un gros trou béant dans l'architecture pour les programmeurs qui font du développement avec une application frontale et PL / SQL dans plusieurs schémas. Voici quelques-unes de mes options avec leurs inconvénients:
Faites en sorte que chaque programmeur fasse le développement dans son propre schéma. Le DBA accordera des privilèges de niveau objet aux programmeurs qui en ont besoin. Tout développement de package doit être effectué par un DBA. L'inconvénient majeur est que les programmeurs utiliseront la base de données comme un ensemble de bits au détriment des performances de la base de données. Je veux que les programmeurs se développent dans la base de données, mais cette méthode la découragerait grandement.
Donnez à chaque programmeur le nom d'utilisateur / mot de passe pour la douzaine de schémas dans lesquels ils doivent effectuer le développement. Accordez à ces schémas d'application l'autorisation de créer des procédures, des tables, etc. Certains des inconvénients de cette approche sont que les programmeurs doivent maintenir plusieurs connexions et sont rarement connecté comme eux-mêmes. Le développement de schémas croisés est également difficile.
Accordez aux programmeurs des privilèges d'authentification proxy sur chaque schéma pour lequel ils doivent effectuer le développement. Cela les maintient connectés comme eux-mêmes sans avoir à leur accorder des privilèges autres que le privilège proxy. Les inconvénients incluent que les programmeurs doivent maintenir des connexions distinctes pour chaque schéma pour lequel ils procurent des proxy, le développement de schémas croisés est plus lourd car les connexions doivent être constamment modifiées et les packages utilisant des liens de base de données publics avec une authentification passée ne se compileront pas dans les connexions proxy.
Donnez à chaque programmeur des privilèges DBA. - L'inconvénient ici est la sécurité. Aucun programmeur de schéma ne peut être tenu à l'écart d'un schéma et tout programmeur peut emprunter l'identité d'un autre programmeur (DBA).
Il semble qu'il y ait une option manquante pour accorder à chaque programmeur SELECT / INSERT / CREATE / etc. privilèges sur le schéma dans lequel ils doivent effectuer le développement. Ils se connectent comme eux-mêmes pour effectuer leur travail à l'aide d'une seule connexion. Les nouveaux objets du schéma auxquels ils ont accès sont immédiatement disponibles.
Suis-je en train de manquer quelque chose? Comment gérez-vous les programmeurs d'applications qui font du développement PL / SQL?