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 11/10/2011, 11h00   #1
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 557
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 557
Points : 507
Points : 507
Par défaut Oracle 11gR2 ROLES et UTILISATEURS

Bonjour,

une application que je dois migrer en oracle 11gr2 gere les uitilisateurs via des roles .

chaque utilisateur a le même rôle, ce role possede le privilège SYSTEM
CREATE SESSION

Si les rôles sont authentifiés, l'utilisateur possédant le rôle a une erreur
ORA_01045

exemple :

Citation:
SQL> create user toto identified by toto ;

Utilisateur crÚÚ.

SQL> create role toto_r identified by toto_r ;

R¶le crÚÚ.

SQL> grant toto_r to toto ;

Autorisation de privilÞges (GRANT) acceptÚe.

SQL> grant create session to toto_r ;

Autorisation de privilÞges (GRANT) acceptÚe.

SQL> spool off ;
SQL> quit ;
DÚconnectÚ de Oracle Database 11g Release 11.2.0.1.0 - Production

C:\Users\duchossoir>sqlplus toto/toto@appt11g

SQL*Plus: Release 11.2.0.1.0 Production on Mar. Oct. 11 10:41:39 2011

Copyright (c) 1982, 2010, Oracle. All rights reserved.

ERROR:
ORA-01045: l'utilisateur TOTO n'a pas le privilÞge CREATE SESSION ; connexion
refusÚe



C:\Users\duchossoir>sqlplus system/****@appt11g

SQL*Plus: Release 11.2.0.1.0 Production on Mar. Oct. 11 10:41:56 2011

Copyright (c) 1982, 2010, Oracle. All rights reserved.


ConnectÚ Ó :
Oracle Database 11g Release 11.2.0.1.0 - Production



SQL> drop role toto_r ;

R¶le supprimÚ.

SQL> drop user toto ;

Utilisateur supprimÚ.

SQL> create user toto identified by toto ;

Utilisateur crÚÚ.


SQL> create role toto_r ;

R¶le crÚÚ.

SQL> grant toto_r to toto ;

Autorisation de privilÞges (GRANT) acceptÚe.

SQL> grant create session to toto_r ;

Autorisation de privilÞges (GRANT) acceptÚe.

SQL> quit ;
DÚconnectÚ de Oracle Database 11g Release 11.2.0.1.0 - Production

C:\Users\duchossoir>sqlplus toto/toto@appt11g

SQL*Plus: Release 11.2.0.1.0 Production on Mar. Oct. 11 10:45:03 2011

Copyright (c) 1982, 2010, Oracle. All rights reserved.


ConnectÚ Ó :
Oracle Database 11g Release 11.2.0.1.0 - Production

SQL>
Le comportement est différent en Oracle9 (l'utilisateur se connecte tout le temps)

En oracle11 , l'utilisateur ne se connecte pas .

Je ne sais pas ce qu'il faut faire pour que l'utilisateur toto puisse se connecter
via ce rôle .

J'ai dû raté quelque chose, je ne trouve rien dans la doc non plus .

Cordialement
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h18   #2
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
bonjour,

ta commande me laisse perplexe :

Code :
CREATE role toto_r IDENTIFIED BY toto_r ;
essaie simplement un
Code :
1
2
3
CREATE role toto_r;
GRANT CREATE session TO toto_r;
GRANT toto_r TO toto;
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h21   #3
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 557
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 557
Points : 507
Points : 507
Bonjour,

S'il n y a pas d'authentification du rôle, cela fonctionne
(vois l'exemple que j'ai joint) .

donc le but est que la connexion fonctionne avec :

Citation:
CREATE role toto_r IDENTIFIED BY toto_r ;
en oracle 9 et 10 cela fonctionne .

peux-tu essayer de ton côté en oracle 11.2 ?

cdlt
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h28   #4
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
désolée, j'avais mal lu.
ben conceptuellement, c'est un petit peu surprenant... est-ce que le create session ne devrait pas être donné juste par un role qui ne soit pas identified by afin que son effet soit immédiat?
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h37   #5
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 557
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 557
Points : 507
Points : 507
D'apres la doc, l'utilisateur a le role attribué avec les priviléges associés dés sa connexion.

je ne sais pas si c'est un bug ou non .

l'authentification, d'apres ce que j'ai compris, est utilisé pour que le rôle soit protégé et donné à des utilisateurs à des moments précis .

de toute façon, si je ne m'en sors pas, je créerai les rôles sans authentification , en epérant que l'application concernée fonctionne correctement (cela va nécessiter plus de tests dans tous les sens,
cette appli étant constituée en pl/sql à 100%)

cdlt
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h15   #6
Membre du Club
 
Homme Arnaud
Inscription : octobre 2002
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2002
Messages : 56
Points : 66
Points : 66
Hello,

Je comprends la doc sur ce point comme cela:

Un role protégé par un password n'est plus automatiquement activé pour un utilisateur, mais doit être activé via la commande

Code :
SET ROLE myrole IDENTIFIED BY mypass
On ne peut utiliser cette commande SET ROLE que si on a le role en question.

Avant cela, aucun des grant du role n'est effectif. Donc, dans le cas particulier du GRANT CREATE SESSION, cela ne peut plus fonctionner car il faut être connecté pour utiliser SET ROLE, mais tu ne peux pas te connecter sans le ROLE actif...

Liens:
http://download.oracle.com/docs/cd/E...htm#SQLRF01311

et

http://download.oracle.com/docs/cd/E...4.htm#i2135600


En conclusion, je pense que le grant create session ne peut être granté via un rôle que si ce rôle n'est pas "protégé"
__________________
Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design.
Dajon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h37   #7
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
je viens de lire la doc oracle. (pas de base sous la main pour tester);
il semblerait que pour que le role soit effectif, lorsqu'il est authentifié par password, il faille faire une petite manip après sa création :
Code :
SET role toto_r IDENTIFIED BY toto_r;
c'est ainsi depuis la 10.2.0.5. amélioration de la sécurité
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 12h39   #8
Membre éprouvé
 
Femme
Administrateur de base de données
Inscription : novembre 2007
Messages : 341
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : novembre 2007
Messages : 341
Points : 478
Points : 478
désolée Arnaud, je n'avais pas vu ta réponse
Heaven93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 08h52   #9
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 557
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 557
Points : 507
Points : 507
Bonjour,

je vais donc créer les rôles sans authentification .
Je vous remercie pour vos réponses .

cordialement
ducho 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 02h47.


 
 
 
 
Partenaires

Hébergement Web