Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13251|Antwoord: 0

[Bron] Oracle-databasekolomniveau permissiecontrole

[Link kopiëren]
Geplaatst op 11-12-2015 23:47:14 | | |
De klant heeft een behoefte, een tabel met meer dan 150 velden, de klant wil dat slechts enkele velden zichtbaar zijn voor de mensen van het scanbedrijf, deze eis kan eenvoudig worden gerealiseerd met een weergave, de klant vraagt ook om deze velden, het scanbedrijf kan alleen individuele velden aanpassen, ik heb zo'n behoefte aan permissiecontrole op kolomniveau nog nooit eerder ervaren, ik heb een experiment gedaan, ik vind het erg interessant, registreer het

De klant heeft er eenVraag, een tabel met meer dan 150 velden, vroeg de klant om slechts enkele velden te tonen aan de mensen die het bedrijf scanden, ditVraagHet kan eenvoudig worden geïmplementeerd met een view, en de klant vraagt om deze velden, het scanbedrijf kan alleen individuele velden wijzigen, ik heb nog nooit zo'n behoefte aan permissiecontrole op kolomniveau ervaren, ik heb een experiment gedaan, ik vind het erg interessant, registreer hetTestproces.

1. Maak een testtabel en voeg punttestgegevens in:

  SQL> maak tabel test( id-nummer, table_name varchar2(50),

eigenaar Varchar2(50),TABLESPACE_NAME Varchar2(50));

Tabel aangemaakt.

SQL> in test invoegen selecteren rownum,table_name,owner,

TABLESPACE_NAME van dba_tables;

5490 rijen aangemaakt.

SQL> commit;

Commit voltooid.

2. Maak een testgebruiker aan en geef basisrechten:

SQL> CONN / AS SYSDBA

Verbonden.

SQL> een gebruikersstroom die wordt geïdentificeerd door de standaard tabelruimtegebruikers van de stroom;

Gebruiker aangemaakt.

SQL> connect grant en resource to stream;

Grant slaagde.

3. Verleen van kolomniveau-rechten aan gebruikers van testgebruikers:

SQL> conn auth/auth

Verbonden.

SQL> grant update (id) bij test om te streamen;

Grant slaagde.

SQL> invoegen (table_name) bij test om te streamen;

Grant slaagde.

SQL>

SQL> grant select on test om te streamen;

Grant slaagde.

4. Vraag naar kolomniveau-permissie-instellingen:

SQL> selecteer GRANTTEE, OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,

TOEWIJZING VANUIT user_col_privs;

HOUDER TABLE_NAME COLUMN_NAME SCHENKER PRIVILEGE GRA

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

STREAM-AUTHENTICATIETEST TABLE_NAME AUTHENTICATIE-INSERT NEE

AUT AUTH TEST ID AUTH INSERT NO

AUT AUTHENTICATIE TEST-ID AUTHENTICATIE UPDATE NEE

STREAM AUTH TEST-ID AUTHENTICATIE UPDATE NEE

5. Inlogtestgebruiker verifieert SELECT-toestemming:

SQL> conn stream/stream

Verbonden.

SQL> selecteer * uit (selecteer * uit authentic.test-volgorde met 1) waarbij rownum< =10;

ID TABLE_NAME EIGENAAR TABLESPACE

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

1 ICOL$ SYS SYSTEEM

2 IND$ SYS-SYSTEEM

3 COL$ SYS-SYSTEEM

4 CLU$ SYS-SYSTEEM

5 TAB$ SYS-SYSTEEM

6 LOB$ SYS-SYSTEEM

7 COLTYPE$ SYS-SYSTEEM

8 SUBCOLTYPE$ SYS-SYSTEEM

9 NTAB$ SYS-SYSTEEM

10 REFCON$ SYS-SYSTEEM

10 rijen geselecteerd.

6. Verifieer kolomniveau UPDATE-permissiecontrole:

SQL> update auth.test set owner='STREAM' waarbij id =1;

update auth.test set owner='STREAM' waarbij id =1

  *

FOUT op regel 1:

  ORA-01031: insufficient privileges

Hieruit blijkt dat de waarde van het OWNER-veld van de testtabel niet mag worden gewijzigd, rapporteer ORA-01031: Onvoldoende toestemming, aangezien bovenstaande de testgebruiker toestemming geeft om het ID-veld van de testtabel te wijzigen, is het mogelijk het ID-veld aan te passen.

SQL> update auth.test set id=10 waarbij id=1;

1 rij bijgewerkt.

SQL> rollback;

Terugrol voltooid.

7. Verifieer kolomniveau INSERT-toestemmingscontrole:

SQL> invoegen in auth.test-waarden (1,'stream','stream','users');

Insert in auth.test values(1,'stream','stream','users')

  *

FOUT op regel 1:

  ORA-01031: insufficient privileges

Aangezien bovenstaande de testgebruiker de invoegrechten geeft om het TABLE_NAME veld van de testtabel te wijzigen, is het mogelijk om TABLE_NAME veld in te voegen, maar alleen als de andere velden GEEN BEPAALDE beperkingen hebben.

SQL> invoegen in auth.test(table_name)-waarden ('stream');

1 rij aangemaakt.

SQL> rollback;

Terugrol voltooid.






Vorig:Gedetailleerde stapsgewijze installatie voor Oracle 10G
Volgend:Nadat Tencent Analytics is ingeschakeld, is het systeem bezet, probeer het later opnieuw
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com