Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 13251|Odgovoriti: 0

[Vir] Nadzor dovoljenj na ravni stolpcev Oracle baze podatkov

[Kopiraj povezavo]
Objavljeno na 11. 12. 2015 23:47:14 | | |
Stranka potrebuje tabelo z več kot 150 polji, stranka potrebuje le nekatera polja, ki jih vidijo ljudje iz podjetja za skeniranje, to zahtevo je mogoče enostavno uresničiti z ogledom, stranka prav tako zahteva, ta polja, podjetje za skeniranje lahko spreminja le posamezna polja. Res še nisem naletel na takšno potrebo po nadzoru dovoljenj na ravni stolpcev, naredil sem eksperiment, počutim se zelo zanimivo, posnetek

Stranka ga imapovpraševanje, tabeli z več kot 150 polji, stranka je zahtevala, da pokaže le nekaj polj tistim, ki so skenirali podjetje, to jepovpraševanjeTo se lahko enostavno implementira z pogledom, in stranka zahteva, da ta polja, podjetje za skeniranje lahko spreminja le posamezna polja. Res še nisem naletel na takšno potrebo po nadzoru dovoljenj na ravni stolpcev, naredil sem eksperiment, počutim se zelo zanimivo, posnemi to.PreizkusProces.

1. Ustvarite testno tabelo in vstavite točkovne testne podatke:

  SQL> ustvari test tabele (id številka,table_name varchar2(50),

lastnik varchar2(50),TABLESPACE_NAME varchar2(50));

Miza ustvarjena.

SQL> vstavi v test select rownum,table_name,owner,

TABLESPACE_NAME iz dba_tables;

Ustvarjenih 5490 vrstic.

SQL> commit;

Zaveza zaključena.

2. Ustvarite testnega uporabnika in dodelite osnovna dovoljenja:

SQL> CONN / AS SYSDBA

Povezano.

SQL> ustvarjanje uporabniškega toka, ki ga identificirajo uporabniki privzetega tabelnega prostora v toku;

Uporabniško ustvarjeno.

SQL> grant connect, resource to stream;

Grant je uspel.

3. Podeli testnim uporabnikom dovoljenja na ravni stolpcev:

SQL> conn avtentikacija/avtentikacija

Povezano.

SQL> grant update (id) pri testu za stream;

Grant je uspel.

SQL> odobri vstavitev (table_name) pri testu za pretok;

Grant je uspel.

SQL>

SQL> omogoči izbiro na testu za pretakanje;

Grant je uspel.

4. Poizvedba po podatkih o nastavitvah dovoljenj na ravni stolpcev:

SQL> Izberite PREJEMNIKA, LASTNIKA, TABLE_NAME, COLUMN_NAME, DAJALCA, PRIVILEGIJA,

ODOBRENO od user_col_privs;

LASTNIK GRANTA TABLE_NAME COLUMN_NAME PRIVILEGIJ GRANTORJA GRA

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

TEST AVTENTIKACIJE V TOKU TABLE_NAME VSTAVI AVTENTIKACIJO ŠT.

AUT AVTENTIC TEST ID AVTENTIKACIJA VSTAVI ŠTEVILKO

AVT AVTENTIKACIJA TEST ID AVTENTIKACIJA POSODOBITEV NE

PREVERJANJE AVTENTIKACIJE TOKA ID POSODOBITEV AVTENTIKACIJE

5. Prijavni testni uporabnik preveri dovoljenje SELECT:

SQL> conn stream/stream

Povezano.

SQL> izberite * from(select * from auth.test order by 1), kjer je rownum< =10;

ID TABLE_NAME LASTNIŠKI MIZNI PROSTOR

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

1 ICOL$ SYS SISTEM

2 IND$ SYS SISTEM

3 COL$ SYS SISTEM

4 CLU$ SYS SISTEM

5 TAB$ SYS SISTEM

6 LOB$ SYS SISTEM

7 COLTYPE$ SYS SISTEM

8 PODCOLTYPE$ SYS SISTEM

9 NTAB$ SYS SISTEM

10 REFCON$ SYS SISTEM

Izbranih 10 vrstic.

6. Preverite nadzor dovoljenj UPDATE na ravni stolpcev:

SQL> posodobi auth.test set owner='STREAM', kjer id =1;

update auth.test set owner='STREAM', kjer id =1

  *

NAPAKA na vrstici 1:

  ORA-01031: insufficient privileges

Vidimo lahko, da vrednost polja OWNER testne tabele ni dovoljena za spreminjanje, poročaj ORA-01031: Nezadostno dovoljenje, ker zgoraj navedeno daje testnemu uporabniku dovoljenje za spreminjanje polja ID tabele, je mogoče polje ID spremeniti.

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

1 vrstica posodobljena.

SQL> rollback;

Razveljavitev zaključena.

7. Preverite nadzor dovoljenj na ravni stolpca INSERT:

SQL> vstavite v auth.test vrednosti (1,'tok', 'tok', 'uporabniki');

Vstavi v avtentikacijo.test vrednosti (1,'tok', 'tok', 'uporabniki')

  *

NAPAKA na vrstici 1:

  ORA-01031: insufficient privileges

Ker zgoraj navedeno daje testnemu uporabniku dovoljenje za vstavljanje TABLE_NAME polja testne tabele, je mogoče vstaviti TABLE_NAME polje, vendar le, če druga polja nimajo NEKATERIH omejitev.

SQL> vstavi vrednosti v auth.test(table_name) ('stream');

Ustvarjena je bila 1 vrstica.

SQL> rollback;

Razveljavitev zaključena.






Prejšnji:Podroben korak za korakom navodila za namestitev Oracle 10G
Naslednji:Ko je Tencent Analytics omogočen, je sistem zaseden, poskusite kasneje znova
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com