Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 13251|Svare: 0

[Kilde] Oracle-database kolonnenivå-tillatelseskontroll

[Kopier lenke]
Publisert på 11.12.2015 23:47:14 | | |
Kunden har et behov, en tabell med mer enn 150 felt, kunden trenger bare noen felt for å bli sett av folkene i skannerfirmaet, dette kravet kan enkelt oppfylles med en visning, kunden ber også om disse feltene, skanneselskapet kan bare endre individuelle felt, jeg har egentlig aldri opplevd et slikt behov for tillatelseskontroll på kolonnenivå før, jeg gjorde et eksperiment, jeg synes det er veldig interessant, registrer det

Kunden har enEtterspørsel, en tabell med mer enn 150 felt, ba kunden om kun å vise noen av feltene til de som skannet selskapet, detteEtterspørselDet kan enkelt implementeres med en visning, og kunden ber om disse feltene, skannerfirmaet kan bare endre individuelle felt, jeg har egentlig ikke opplevd et slikt behov for tillatelseskontroll på kolonnenivå før, jeg gjorde et eksperiment, jeg synes det er veldig interessant, ta det oppPrøveprosess.

1. Lag en testtabell og sett inn punkttestdata:

  SQL> opprette tabelltest(id-nummer, table_name varchar2(50),

eier Varchar2(50),TABLESPACE_NAME Varchar2(50));

Tabell opprettet.

SQL> sett inn i testen velg rownum,table_name,owner,

TABLESPACE_NAME fra dba_tables;

5490 rader opprettet.

SQL> commit;

Forpliktelse fullført.

2. Opprett en testbruker og gi grunnleggende tillatelser:

SQL> CONN / AS SYSDBA

Koblet.

SQL> oppretter brukerstrøm identifisert ved strømmens standard tabellplassbrukere;

Brukeropprettet.

SQL> tilknytte, ressurs til strøm;

Grant lyktes.

3. Gi testbrukere kolonnenivå-tillatelser:

SQL> conn auth/auth

Koblet.

SQL> gi oppdatering (id) på test for å streame;

Grant lyktes.

SQL> gi innsetting (table_name) på test to stream;

Grant lyktes.

SQL>

SQL> tildelte valg av test for strømming;

Grant lyktes.

4. Søk i informasjon om tillatelsesinnstillinger på kolonnenivå:

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

TILDELES FRA user_col_privs;

MOTTAKER TABLE_NAME COLUMN_NAME GRANTOR PRIVILEGE GRA

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

STREAM AUTH-TEST TABLE_NAME AUTH, SETT INN NEI

AUT AUTH TEST ID AUTH AUTH INSERT NEI

AUTENTISERING TEST-ID AUTENTISERING OPPDATERING NEI

STRØMAUTENTISERING TEST-ID AUTENTISERING OPPDATERING NEI

5. Innloggingstestbruker verifiserer SELECT-tillatelse:

SQL> conn stream/stream

Koblet.

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

ID TABLE_NAME EIER-TABELLSPACE

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

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 rader valgt.

6. Verifiser kolonnenivå UPDATE-tillatelseskontroll:

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

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

  *

FEIL på linje 1:

  ORA-01031: insufficient privileges

Det kan sees at verdien av OWNER-feltet i testtabellen ikke er tillatt å endres, rapport ORA-01031: Utilstrekkelig tillatelse, siden ovenstående gir testbrukeren tillatelse til å endre ID-feltet i testtabellen, er det mulig å endre ID-feltet.

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

1 rad oppdatert.

SQL> tilbakerulling;

Tilbakerulling fullført.

7. Verifiser kolonnenivå INSERT tillatelseskontroll:

SQL> sett inn i auth.test-verdier (1,'stream','stream','users');

sett inn i auth.test values(1,'stream','stream','users')

  *

FEIL på linje 1:

  ORA-01031: insufficient privileges

Siden ovenstående gir testbrukeren innsettingstillatelse til å endre TABLE_NAME felt i testtabellen, er det mulig å sette inn TABLE_NAME felt, men bare hvis de andre feltene ikke har IKKE NOEN begrensninger.

SQL> sett inn i auth.test(table_name)-verdier ('stream');

1 rad opprettet.

SQL> tilbakerulling;

Tilbakerulling fullført.






Foregående:Detaljert installasjonstrinn-for-trinn-veiledning for Oracle 10G
Neste:Etter at Tencent Analytics er aktivert, er systemet opptatt, vennligst prøv igjen senere
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com