web-dev-qa-db-fra.com

Subvention Créer une autorisation sur un schéma spécifique à Oracle 11g

J'ai deux utilisateurs A et B. Je veux accorder la permission de créer, de tomber, etc. Toutes les tables du schéma d'A. Autant que je sache, je peux accorder un accès complet à tous les schémas et non spécifiques. Est-ce correct?

7
Michael-O

Vous êtes correct qu'il n'y a aucun moyen d'accorder à un utilisateur/goutte/etc Autorisations sur un schéma complet. Je vous suggère de regarder dans authentification proxy . Cela implique essentiellement de modifier l'utilisateur A pour permettre à l'utilisateur B de proxy en tant que:

ALTER USER A GRANT CONNECT THROUGH B;

Ensuite, la connexion utilise l'authentification de l'utilisateur B, mais obtient les autorisations de l'utilisateur A.

connect B[A]/Password@Database

Cette question était quelque peu couverte par ma question plus spécifique ici .


Remarque sur les rôles: les rôles fonctionnent bien pour donner privilèges d'objet à un autre utilisateur car les privilèges sont liés à un objet spécifique. Tandis que les rôles peuvent octroyer privilèges système, ils s'appliquent soit au schéma des utilisateurs, soit à l'ensemble de la base de données et ne peuvent donc pas s'appliquer à un autre schéma. Par exemple, l'utilisateur B pourrait être accordé CREATE TABLE qui lui permettrait de créer des tables dans son propre schéma ou CREATE ANY TABLE qui lui permettrait de créer des tables dans n'importe quel schéma. Ces autorisations pourraient être accordées directement ou par un rôle, mais le premier n'autoriserait pas à créer des privilèges dans le schéma. Ce serait, mais permettrait également de créer des privilèges dans n'importe quel schéma, y ​​compris SYS, ce qui serait une préoccupation de sécurité.

11
Leigh Riffel

Il suffit de créer une procédure sur le schéma cible qui implique Execute_Immediate pour créer des tables (vérifier pour d'autres DDLS !!). Donnez ensuite au privilège Schema Schema d'exécuter sur la procédure. Cela devrait faire l'affaire sans préoccupations de sécurité.

0
blantomat