IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Création d'une politique de sécurité : erreur avec DBMS_RLS


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Création d'une politique de sécurité : erreur avec DBMS_RLS
    Bonsoir,

    J'utilise ORACLE 10g XE sous Windows XP.
    J'essaye de créer une politique de sécurité sauf que j'ai l'erreur suivante :
    ORA-00439 fonction non-activée : fine-grained access control
    ORA-06512 à "SYS.DBMS_RLS"
    Le prof nous a dit qu'il y avait pas besoin d'utiliser de contexte, ni de package.

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    connect sys as sysdba
    create user admi5_admin identified by admi5_admin
    default tablespace users
    temporary tablespace temp
    quota 1M on users;
    grant all privileges to admi5_admin with admin option;
    grant execute on dbms_rls to admi5_admin;
     
    connect admi5_admin/admi5_admin;
    create user Dupond identified by Dupond
    default tablespace users
    temporary tablespace temp
    quota 1M on users;
    grant create session to Dupond;
     
    -- Création des tables, je n'en montre qu'une seule
    create table adherent (
      id_adherent varchar(8),
      id_club number(8),
      id_groupe number(10),
      nom varchar(20),
      prenom varchar(20),
      sexe char,
      annee_naissance number(4),
      categorie varchar(10),
      classement varchar(10),
      adresse varchar(30),
      telephone varchar(10),
      capitaine number(1),
      primary key (id_adherent),
      foreign key (id_club) references club(id_club),
      foreign key (id_groupe) references groupe(id_groupe)
    );
     
    create role admi5_role_adherent;
     
    CREATE OR REPLACE FUNCTION auth_adh (schema_var IN VARCHAR2 DEFAULT NULL, table_var IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS
    	return_val VARCHAR2(400);
    BEGIN
    	IF USER='admi5_admin' THEN
    		return_val := '1=1' ;
    	ELSE
    		return_val := 'nom=SYS_CONTEXT(''userenv'',''session_user'')';
    	END IF;
    	RETURN return_val;
    END auth_adh;
    /
     
    BEGIN
    --DBMS_RLS.DROP_POLICY('admi5_admin','adherent','adh_policy');
    DBMS_RLS.ADD_POLICY(
    	object_schema=>'admi5_admin',
    	object_name=>'adherent',
    	policy_name=>'adh_policy',
    	function_schema=>'admi5_admin',
    	policy_function=>'auth_adh',
    	statement_types=>'SELECT'
    );
    END;
    /
     
    GRANT SELECT ON adherent to admi5_role_adherent;
    GRANT admi5_role_adherent to Dupond;
    Quelqu'un aurait-il la solution à mon problème ?

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 462
    Par défaut
    Il faut utiliser l'édition Entreprise pour ça !

    On peut le voir en toutes lettres ici par exemple :
    http://docs.oracle.com/cd/B19306_01/...4258/d_rls.htm

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ça me rassure, je croyais avoir fait une mauvaise manipulation.
    Je vais essayer avec cette édition alors.
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je m'excuse tout d'abord pour le double-post, mais je ne voulais pas rouvrir un autre sujet.
    Donc j'ai réussi à installer Oracle 10g avec Enterprise Edition.
    J'ai exécuté le code que j'ai mis sur mon premier message avec SQL Developer.
    Puis, je teste avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect Dupond/Dupond
    select * from admi5_admin.adherent;
    Cette requête m'affiche tous les adhérents, alors qu'elle devrait afficher seulement le résultat de Dupond.
    On planche depuis pas mal de jour sur ce code, sans trouver notre erreur. On a essayé avec des contextes, ça ne fonctionne pas mieux.

  5. #5
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Peut être un problème casse (majuscule/minuscule)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    return_val := 'UPPER(nom)=UPPER(SYS_CONTEXT(''userenv'',''session_user''))';

  6. #6
    Invité
    Invité(e)
    Par défaut
    Toujours le même résultat :s

    Edit : en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect Dupond/Dupond;
    SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER') FROM DUAL;
    j'obtiens : SYS.
    Dernière modification par Invité ; 04/12/2012 à 00h59.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2011, 18h35
  2. Création d'une page de garde, erreur avec \maketitle
    Par Nathan21 dans le forum Débuter
    Réponses: 3
    Dernier message: 21/07/2010, 16h03
  3. Création d'une vue matérialisée et erreur ORA-01630
    Par beurtom dans le forum Administration
    Réponses: 8
    Dernier message: 23/02/2007, 13h27
  4. [ASE]Création d'une BD sous HP-UX avec LV ou RLV ?
    Par sterictra dans le forum Sybase
    Réponses: 1
    Dernier message: 13/02/2007, 14h40
  5. Réponses: 3
    Dernier message: 05/06/2006, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo