Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur 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 21/03/2008, 15h47   #1
Invité de passage
 
Inscription : mars 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 2
Points : 1
Points : 1
Par défaut Attribuer un Schema à un USER

Bonjour,

Etant novice sur Oracle j'ai déjà pas mal recherché sur le web mais n'ai rien trouvé qui pouvait répondre à ma question.

Voici donc ma problèmatique :

J'ai une base dans laquelle j'ai plusieurs schémas.
Je veux donner l'accès à un schéma en lecture à un utilisateur.
J'ai donc créé un rôle auquel j'ai attribué le droit de SELECT sur chacune des tables du schema.
J'ai ensuite créé l'utilisateur auquel j'ai attribué le rôle.

Désormais, je voudrais que cet utilisateur, lorsqu'il se connecte arrive directement dans ce schéma.

Merci de votre aide.
fredbaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 15h55   #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
http://fadace.developpez.com/oracle/securite/#LIV-A

Code :
ALTER session SET current_schema=user1;
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 15h56   #3
Membre du Club
 
Inscription : mai 2007
Messages : 73
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 73
Points : 41
Points : 41
Code :
ALTER session SET current_schema=TOTO
à la connexion de ton user .
jf4db est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 17h31   #4
Invité de passage
 
Inscription : mars 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 2
Points : 1
Points : 1
Merci pour cette réponse.
Et effectivement cela fonctionne.

Cependant cette solution n'est pas persistante.
Serait-il possible de faire en sorte qu'à la connexion l'utilisateur soit déjà placé dessus ?
fredbaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 14h08   #5
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Il faut créer un trigger à la connexion, qui vérifie que quand le user est TOTO, son schéma soit celui de TATA. Code (à vérifier car non testé) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE TRIGGER SYS.TRIGGER_LOGON_TOTO
AFTER LOGON
ON DATABASE
begin
    IF (sys_context('userenv','session_user') = 'TOTO')
	then
      execute immediate 'alter session set current_schema = TATA';
    end IF;
exception
  when others then
    RETURN;
end;
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 11h00   #6
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
Il me semblait qu'un schéma et un user étaient directement liés, dans le sens où un schéma correspond à l'ensemble des objets détenus par un USER.

Comment peut on dans ce cas définir un autre schéma à un USER? y'a là qqch qui m'échappe
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 11h29   #7
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
un user a un schéma, mais un user n'est pas un schéma pour autant. Un user c'est une identité permettant de se connecter à la base alors que le schéma est un containers d'objet. Ainsi, un user même si il peut se connecter à la base ne voit pas forcément les objets contenu dans un autre schéma que le sien pour se faire, outre l'attribution des droits, il doit utiliser les objets en les appelant SCHEMA.OBJET si l'objet est dans un autre schéma. Changer le schéma courant évite de préfixer le nom des objets ce que permet également les synonymes.

Pour faire simple :
le user c'est celui qui se connecte
le schéma c'est celui qui est propriétaire des objets
un user a forcément un schéma associé

Pour faire encore plus simple (quitte à faire grincer les dents des plus pointilleux ) :
schéma = user locké

J'espère que j'ai été clair
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 11h33   #8
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
oui mais dans ce cas il faut que le USER en question est les droits sur tous les objets du schéma qui lui appartient à un autre USER ...non???
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 12h12   #9
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
bien entendu
orafrance 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 22h46.


 
 
 
 
Partenaires

Hébergement Web