Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 13251|Répondre: 0

[Source] Contrôle des permissions au niveau colonne de la base de données Oracle

[Copié le lien]
Publié sur 11/12/2015 23:47:14 | | |
Le client a un besoin, une table de plus de 150 champs, il n’a besoin que de quelques champs visibles par les personnes de l’entreprise de numérisation, cette exigence peut être facilement réalisée avec une vue, le client demande aussi ces champs, la société de scan ne peut modifier que des champs individuels, je n’ai jamais rencontré un tel besoin de contrôle des permissions au niveau de la colonne auparavant, j’ai fait une expérience, je me sens très intéressant, enregistrez-le

Le client en a unDemande, un tableau avec plus de 150 champs, le client demandait de ne montrer que certains champs aux personnes qui scannaient l’entreprise, ceDemandeCela peut être facilement implémenté avec une vue, et le client demande que ces champs soient modifiés par la société de scan, ne peut modifier que des champs individuels, je n’avais vraiment jamais rencontré un tel besoin de contrôle des permissions au niveau de la colonne auparavant, j’ai fait une expérience, je trouve ça très intéressant, enregistrez-leTestProcessus.

1. Créer une table de test et insérer des données de test ponctuel :

  SQL> créer table test( id number,table_name varchar2(50),

propriétaire Varchar2(50), TABLESPACE_NAME Varchar2(50)) ;

Table créée.

SQL > insérer dans le test sélectionner rownum, table_name, propriétaire,

TABLESPACE_NAME de dba_tables ;

5490 rangées créées.

SQL > commit ;

Commit terminé.

2. Créer un utilisateur test et donner les permissions de base :

SQL> CONN / AS SYSDBA

Connecté.

SQL > créer un flux utilisateur identifié par les utilisateurs par défaut de l’espace de tables du flux ;

Créé par l’utilisateur.

SQL > accorder connexion, ressource vers flux ;

Grant a réussi.

3. Accorder aux utilisateurs de test des autorisations au niveau de la colonne :

SQL> authentification/authentification de la conn.

Connecté.

SQL> accorder la mise à jour (id) lors du test vers le flux ;

Grant a réussi.

SQL > accorder insertion (table_name) sur test vers flux ;

Grant a réussi.

SQL >

SQL > accorder la sélection sur test à flux ;

Grant a réussi.

4. Interroger les informations de paramètres de permissions au niveau de la colonne :

SQL > sélectionner GROS, PROPRIÉTAIRE, TABLE_NAME, COLUMN_NAME, ACCORDANT, PRIVILÈGE,

ACCORDABLE de user_col_privs ;

PROPRIÉTAIRE HONORABLE TABLE_NAME COLUMN_NAME PRIVILÈGE DE CÉDANT GRA

------- ----- ---------- ----------- ------- --------- ---

FLUX AUTHENTIFICATION TEST TABLE_NAME AUTHENTIFICATION NON

AUTHENTIFICATION AUT, ID DE TEST AUTHENTIQUE NON

AUTHENTIFICATION AUT, ID DE TEST D’AUTHENTIFICATION, MISE À JOUR NON

FLUX D’AUTHENTIFICATION ID DE TEST D’AUTHENTIFICATION : MISE À JOUR NON

5. L’utilisateur de test de connexion vérifie l’autorisation SELECT :

SQL> flux conn

Connecté.

SQL > sélectionner * de(select * dans l’ordre du test authentique par 1) où rownum< = 10 ;

ID TABLE_NAME ESPACE DE TABLE PROPRIÉTAIRE

---------- -------------------- ---------- ----------

1 SYSTÈME SYS D’ICOL$

SYSTÈME SYS À 2 IND$

3 SYSTÈME SYS COL$

SYSTÈME SYS 4 CLU$

SYSTÈME SYS 5 TAB$

6 SYSTÈME SYS LOB$

7 SYSTÈME SYS$ COLTYPE$

8 SYSTÈME SYS$ SUBCOLTYPE$

SYSTÈME SYS 9 NTAB$

10 SYSTÈME SYS REFCON$

10 rangées sélectionnées.

6. Vérifier le contrôle des permissions UPDATE au niveau de la colonne :

SQL > mettre à jour auth.test set owner='STREAM' où id = 1 ;

update auth.test set owner='STREAM' où id = 1

  *

ERREUR à la ligne 1 :

  ORA-01031: insufficient privileges

On peut voir que la valeur du champ PROPRIÉTAIRE de la table de test n’est pas autorisée à être modifiée, rapport ORA-01031 : Permission insuffisante, puisque ce qui précède donne à l’utilisateur de test la permission de modifier le champ ID de la table de test, il est possible de modifier le champ ID.

SQL > mettre à jour auth.test set id=10 où id=1 ;

1 ligne mise à jour.

SQL > rollback ;

Retour en arrière terminé.

7. Vérifier le contrôle d’autorisation INSERT au niveau de la colonne :

SQL > insérer dans les valeurs de test authentique (1, « stream », « stream », « users ») ;

insérer dans authent.test valeurs (1,'stream', 'stream', 'users')

  *

ERREUR à la ligne 1 :

  ORA-01031: insufficient privileges

Puisque ce qui précède donne à l’utilisateur de test la permission d’insertion de modifier le champ TABLE_NAME de la table de test, il est possible d’insérer TABLE_NAME champ, mais seulement si les autres champs n’ont PAS CERTAINES contraintes.

SQL > insérer dans authent.test(table_name) des valeurs (« stream ») ;

1 ligne créée.

SQL > rollback ;

Retour en arrière terminé.






Précédent:Tutoriel détaillé d’installation étape par étape pour Oracle 10G
Prochain:Une fois Tencent Analytics activé, le système est occupé, veuillez réessayer plus tard
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com