Rechercher : dans
Par :

SQL - Grant - Distribution de droits

Dernière réponse le 3 oct 2007 à 15:52:05 mezcalouz, le 15 déc 2006 à 22:06:39 
 Signaler ce message aux modérateurs

Bonsoir,
Je viens d'installer Oracle, et j'ai crée plusieurs utilisateurs.
Je voudrais permettre a un utilisateur A d'avoir tous les droits sur les tables de l'utilisateur B qui commencent par PUBLIC_xxx.
Le probleme, c'est que Grant n'accepte pas de sous requete du type
GRANT SELECT, UPDATE, INSERT
ON (SELECT table_name
from all_tables
where owner = 'B'
and table_name LIKE 'PUBLIC_%' )
TO 'A';
Quelqu'un sait comment je pourrais faire ca? A part autoriser chaque table une par une.
Merci !

Configuration: Windows XP
Firefox 1.5.0.8

Meilleures réponses pour « SQL Grant Distribution de droits » dans :
Choisir une distribution Linux VoirChoisir sa distribution GNU/Linux est loin d'être évident ! Surtout quand on débute sur la banquise ;-) Ceci n'a pas la prétention de promouvoir une distribution au détriment des autres. C'est plutôt une liste de solutions classées par...
[Sécurité] Droits d'accès - GNU/Linux VoirLes droits d'accès Préface I. Généralités II. Les droits III. Les droits spéciaux 1. Le Sticky bit 2. Les droits d'endossement IV. Les commandes 1. chmod 2. umask Préface Le but de cet article n'est pas de vous apprendre quels...
Plantage d'Explorer.exe après un clic droit VoirExplorer.exe se bloque lors d'un clic droit sur le Bureau Préambule Configuration à problèmes ? Résolution du problème Origine matérielle Origine logicielle Préambule Lors d'un clic-droit, par exemple sur le Bureau ou dans...
SQL - Mise à jour d'informations VoirLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de...
Le droit d'auteur VoirIntroduction au droit d'auteur Le droit d'auteur en France est régi par par la loi du 11 mars 1957 et la loi du 3 juillet 1985, codifiées dans le code de la propriété intellectuelle. La loi reconnaît en tant qu'auteur toute personne physique qui...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...

1

 jdanet, le 3 oct 2007 à 15:52:05
  • +1

Bonjour,

Le mieux semble être de se faire une petite routine en PL/SQL, qui boucle sur le résultat du SELECT pour appeler un EXECUTE IMMEDIATE avec la commande à faire :

begin
for nomtable in
(SELECT table_name
from all_tables
where owner = 'B'
and table_name LIKE 'PUBLIC_%'
) loop

EXECUTE IMMEDIATE 'grant SELECT, UPDATE, INSERT on ' || nomtable.table_name || ' to A';

end loop;

end;


Ca c'est la forme simple, la forme complexe utilise un curseur pour ouvrir le SELECT et le parcourir. Avec un curseur Oracle ne bugge pas (en version < 9, parfois il ne lit pas lma dernière ligne), mais sinon c'est la même chose.

Répondre à jdanet
Collection CommentÇaMarche.net