Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 13251|Atsakyti: 0

[Šaltinis] "Oracle" duomenų bazės stulpelio lygio teisių valdymas

[Kopijuoti nuorodą]
Paskelbta 2015-12-11 23:47:14 | | |
Klientas turi poreikį, daugiau nei 150 laukų lentelė, klientas reikalauja, kad skenavimo įmonės žmonės matytų tik kai kuriuos laukus, šį reikalavimą galima lengvai įgyvendinti rodiniu, klientas taip pat prašo, šiuos laukus, nuskaitymo įmonė gali keisti tik atskirus laukus, aš tikrai anksčiau nesu susidūręs su tokiu leidimų valdymo poreikiu stulpelio lygiu, padariau eksperimentą, jaučiuosi labai įdomu, įrašykite jį

Klientas turi vienąpaklausa, lentelėje su daugiau nei 150 laukų, klientas paprašė parodyti tik kai kuriuos laukus žmonėms, kurie nuskaitė įmonę, taipaklausaJį galima lengvai įgyvendinti su rodiniu, o klientas prašo, kad šie laukai, nuskaitymo įmonė galėtų keisti tik atskirus laukus, aš tikrai anksčiau nesu susidūręs su tokiu leidimų valdymo poreikiu stulpelio lygiu, padariau eksperimentą, jaučiuosi labai įdomiai, įrašykite jįBandymoprocesas.

1. Sukurkite bandymo lentelę ir įterpkite taško testo duomenis:

  SQL> sukurti lentelės testą (ID numeris, table_name varchar2 (50),

savininkas varchar2(50),TABLESPACE_NAME varchar2(50));

Sukurta lentelė.

SQL> įterpti į testą pasirinkti eilutę,table_name,savininkas,

TABLESPACE_NAME nuo dba_tables;

Sukurta 5490 eilučių.

SQL> įsipareigojimas;

Įsipareigojimas baigtas.

2. Sukurkite bandomąjį vartotoją ir suteikite pagrindinius leidimus:

SQL> CONN / AS SYSDBA

Prijungtas.

SQL> sukurti vartotojo srautą, identifikuojamą srauto numatytųjų lentelės vartotojų;

Vartotojas sukurtas.

SQL> suteikti ryšį, išteklius srautui;

Grantui pavyko.

3. Suteikite bandomiesiems naudotojams stulpelio lygio leidimus:

SQL> conn auth/auth

Prijungtas.

SQL> suteikti naujinimą (ID) bandant srautui;

Grantui pavyko.

SQL> suteikti įterpti (table_name) bandymo srautui;

Grantui pavyko.

SQL>

SQL> suteikti pasirinkti bandymo srautą;

Grantui pavyko.

4. Užklausti stulpelio lygio teisių nustatymo informacijos:

SQL> pasirinkite GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,

SUTEIKIAMA iš user_col_privs;

DOTACIJOS SAVININKAS TABLE_NAME COLUMN_NAME SUTEIKĖJO PRIVILEGIJA GRA

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

SRAUTO AUTENTIFIKAVIMO TESTAS TABLE_NAME AUTENTIFIKAVIMAS ĮTERPTI NE

AUT AUTH TEST ID AUTH INSERT NO

AUT AUTH TEST ID AUTENTIFIKAVIMO NAUJINIMAS NR

SRAUTO AUTENTIFIKAVIMO TESTO ID AUTENTIFIKAVIMO NAUJINIMAS NR

5. Prisijungimo testo vartotojas patikrina SELECT leidimą:

SQL> conn srautas / srautas

Prijungtas.

SQL> pasirinkite * iš(pasirinkite * iš autentifikavimo.testo tvarka pagal 1), kur eilutė< =10;

ID TABLE_NAME SAVININKO LENTELĖS VIETA

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

1 ICOL$ SYS SISTEMA

2 IND$ SYS SISTEMA

3 COL$ SYS SISTEMA

4 CLU$ SYS SISTEMA

5 TAB$ SYS SISTEMA

6 LOB$ SYS SISTEMA

7 COLTYPE$ SYS SISTEMA

8 SUBCOLTYPE$ SYS SISTEMA

9 NTAB$ SYS SISTEMA

10 REFCON$ SYS SISTEMA

Pasirinkta 10 eilučių.

6. Patikrinkite stulpelio lygio UPDATE teisių valdiklį:

SQL> atnaujinkite auth.test set owner='STREAM', kur id =1;

atnaujinti auth.test set owner='STREAM', kur id =1

  *

KLAIDA 1 eilutėje:

  ORA-01031: insufficient privileges

Galima pastebėti, kad bandomosios lentelės lauko OWNER vertės negalima keisti, ataskaita ORA-01031: Nepakankamas leidimas, nes tai, kas išdėstyta aukščiau, suteikia bandomajam vartotojui leidimą keisti bandomosios lentelės ID lauką, galima modifikuoti ID lauką.

SQL> atnaujinti auth.test set id=10, kur id=1;

Atnaujinta 1 eilutė.

SQL> atšaukimas;

Atšaukimas baigtas.

7. Patikrinkite stulpelio lygio INSERT teisių valdiklį:

SQL> įterpti į auth.test reikšmes(1,'stream','stream','users');

Įterpti į Auth.test reikšmes(1,'srautas','srautas','vartotojai')

  *

KLAIDA 1 eilutėje:

  ORA-01031: insufficient privileges

Kadangi tai, kas išdėstyta pirmiau, suteikia bandomajam vartotojui įterpimo teisę modifikuoti bandomosios lentelės TABLE_NAME lauką, galima įterpti TABLE_NAME lauką, bet tik tuo atveju, jei kiti laukai neturi NE TAM tikrų apribojimų.

SQL> įterpti į auth.test(table_name) reikšmes ("srautas");

Sukurta 1 eilutė.

SQL> atšaukimas;

Atšaukimas baigtas.






Ankstesnis:Išsami "Oracle 10G" diegimo pamoka
Kitą:Įjungus "Tencent Analytics", sistema užimta, bandykite dar kartą vėliau
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com