Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2008, 17h57   #1
Membre habitué
 
Inscription : février 2007
Messages : 216
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : février 2007
Messages : 216
Points : 115
Points : 115
Par défaut ORA-01031 Insuffisent privilège

Bonjour tout le monde;
Je voudrais créer une vue dans un schema admin_user, en selectionnant des tables de schema hr avec un utilisateur admin_user sachant que ce dernier a les role dba,connect,ressource.
pour créer l'utilisateur:
Code :
1
2
3
 
CREATE user admin_user IDENTIFIED BY toto
GRANT dba,connect,ressource TO admin_user
j'execute la requete suivante:
Code :
1
2
3
4
5
 
connect admin_user/toto
CREATE VIEW v_1 AS
SELECT * FROM hr.t1, hr.t2
WHERE t1.id=t2.id
il me donne l'erreur suivante ORA-01031 Insuffisent privilège
merci d'avance
elharet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 09h36   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
manque le grant sur t1 et t2
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 17h28   #3
Membre habitué
 
Inscription : février 2007
Messages : 216
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : février 2007
Messages : 216
Points : 115
Points : 115
merci orafrance pour ta réponse.
Mais j'ai le privilège DBA donc je peux sélectionner n'importe quelle table.
je peux faire:
Code :
1
2
3
 
SELECT * FROM hr.t1, hr.t2
WHERE t1.id=t2.id
sans aucun problème. Mais pour créer la vue :
Code :
1
2
3
CREATE VIEW v_1 AS
SELECT * FROM hr.t1, hr.t2
WHERE t1.id=t2.id
il me donne insuffisent privilèges
Je n'arrive pas a comprendre
elharet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 19h45   #4
Rédacteur
 
Inscription : décembre 2002
Messages : 2 401
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 401
Points : 3 307
Points : 3 307
Citation:
Envoyé par elharet Voir le message
Mais j'ai le privilège DBA donc je peux sélectionner n'importe quelle table.
Plus exactement, DBA n'est pas un privilège, mais un rôle.
Ceci a une conséquence importante, qui est documentée dans les prérequis du CREATE VIEW.
http://download.oracle.com/docs/cd/B...htm#sthref8261
Citation:
The owner of the schema containing the view must have the privileges necessary to either select, insert, update, or delete rows from all the tables or views on which the view is based. The owner must be granted these privileges directly, rather than through a role.
Le point important, c'est que le droit d'accès aux tables doit être acquis à travers un privilège, et non un rôle.
Si, au lieu de donner le rôle DBA (qui contient en particulier le privilège SELECT ANY TABLE) à votre utilisateur, vous lui donnez directement le privilège SELECT ANY TABLE, il pourra créer sa vue.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2008, 16h52   #5
Membre habitué
 
Inscription : février 2007
Messages : 216
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : février 2007
Messages : 216
Points : 115
Points : 115
Merci, c'est exactement ce dont j'ai besoin J'ai fait:
Code :
GRANT SELECT ANY TABLE TO admin_user
puis la vue s'est créer sans aucun problème. Merci pour l'info
Mais ce que je n'arrive pas a comprendre c'est que je peux faire le SELECT mais pour créer la vue il me faut le privilège SELECT ANY TABLE.
elharet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h04.


 
 
 
 
Partenaires

Hébergement Web