Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 13251|Svar: 0

[Kilde] Oracle-database-kolonneniveau tilladelseskontrol

[Kopier link]
Opslået på 11/12/2015 23.47.14 | | |
Kunden har et behov, en tabel med mere end 150 felter, kunden kræver kun nogle felter, som folk i scanningsfirmaet kan se, dette krav kan nemt realiseres med en visning, kunden anmoder også om disse felter, scanningsfirmaet kan kun ændre individuelle felter, jeg har virkelig ikke oplevet et sådant behov for tilladelseskontrol på kolonneniveau før, jeg lavede et eksperiment, jeg synes det er meget interessant, registrer det

Kunden har enEfterspørgsel, en tabel med mere end 150 felter, kunden bad kun om at vise nogle af felterne til de personer, der scannede virksomheden, detteEfterspørgselDet kan nemt implementeres med en visning, og kunden beder om disse felter, scanningsfirmaet kan kun ændre individuelle felter, jeg har virkelig ikke oplevet et sådant behov for tilladelseskontrol på kolonneniveau før, jeg lavede et eksperiment, jeg føler mig meget interessant, optag detTestproces.

1. Opret en testtabel og indsæt punkttestdata:

  SQL> oprette tabeltest(id-nummer,table_name varchar2(50),

ejer Varchar2(50)TABLESPACE_NAME Varchar2(50));

Tabel oprettet.

SQL> indsæt i testen vælg rownum,table_name,owner,

TABLESPACE_NAME fra dba_tables;

5490 rækker oprettet.

SQL> commit;

Forpligtelse fuldført.

2. Opret en testbruger og giv grundlæggende tilladelser:

SQL> CONN / AS SYSDBA

Forbundet.

SQL> oprette brugerstrøm identificeret ved strøms standard tabelpladsbrugere;

Brugeroprettet.

SQL> tildel, forbind, ressource til stream;

Grant lykkedes.

3. Giv testbrugere kolonneniveau-tilladelser:

SQL> conn auth/auth

Forbundet.

SQL> give opdatering (id) på test til stream;

Grant lykkedes.

SQL> give indsæt (table_name) på test to stream;

Grant lykkedes.

SQL>

SQL> grant select on test to stream;

Grant lykkedes.

4. Forespørg information om tilladelsesindstillinger på kolonneniveau:

SQL> vælg GRANTEE, EJER, TABLE_NAME, COLUMN_NAME, GRANTOR, PRIVILEGE,

UDDELES FRA user_col_privs;

BEVILLINGSHAVER TABLE_NAME COLUMN_NAME GRANTOR PRIVILEGE GRA

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

STREAM AUTH-TEST TABLE_NAME AUTH-INDSÆT NEJ

AUT AUTH, TEST-ID, AUTENTIFICERING, INDSÆT NEJ

AUT AUTH, TEST-ID, AUTENTIFICERINGSOPDATERING NEJ

STREAM AUTENTIFICERING TEST-ID AUTENTIFICERING OPDATERING NEJ

5. Logintestbruger verificerer SELECT-tilladelse:

SQL> conn stream/stream

Forbundet.

SQL> vælg * fra (vælg * fra auth.test-orden med 1) hvor rownum< =10;

ID TABLE_NAME EJER TABLESPACE

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

1 ICOL$ SYS-SYSTEM

2 IND$ SYS-SYSTEM

3 COL$ SYS-SYSTEM

4 CLU$ SYS-SYSTEM

5 TAB$ SYS-SYSTEM

6 LOB$ SYS-SYSTEM

7 COLTYPE$ SYS-SYSTEM

8 SUBCOLTYPE$ SYS-SYSTEM

9 NTAB$ SYS-SYSTEM

10 REFCON$ SYS-SYSTEM

10 rækker valgt.

6. Verificér kolonneniveau UPDATE-tilladelseskontrol:

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

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

  *

FEJL på linje 1:

  ORA-01031: insufficient privileges

Det kan ses, at værdien af OWNER-feltet i testtabellen ikke må ændres, rapport ORA-01031: Utilstrækkelig tilladelse, da ovenstående giver testbrugeren tilladelse til at ændre ID-feltet i testtabellen, er det muligt at ændre ID-feltet.

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

1 række opdateret.

SQL> rollback;

Tilbagerulning fuldført.

7. Verificér kolonneniveau INSERT tilladelseskontrol:

SQL> indsæt værdier i auth.test(1,'stream','stream','users');

indsæt i auth.test values(1,'stream','stream','users')

  *

FEJL på linje 1:

  ORA-01031: insufficient privileges

Da ovenstående giver testbrugeren indsættelsestilladelse til at ændre det TABLE_NAME felt i testtabellen, er det muligt at indsætte TABLE_NAME felt, men kun hvis de andre felter ikke har IKKE NOGLE begrænsninger.

SQL> indsæt i auth.test(table_name)-værdier ('stream');

1 række oprettet.

SQL> rollback;

Tilbagerulning fuldført.






Tidligere:Detaljeret trin-for-trin installation vejledning til Oracle 10G
Næste:Når Tencent Analytics er aktiveret, er systemet optaget, prøv venligst igen senere
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com