Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 13251|Svar: 0

[Källa] Oracle-databasens kolumnnivåbehörighetskontroll

[Kopiera länk]
Publicerad på 2015-12-11 23:47:14 | | |
Kunden har ett behov, en tabell med mer än 150 fält, kunden kräver bara att vissa fält ska kunna ses av personalen på det skannande företaget, detta krav kan enkelt uppfyllas med en vy, kunden begär också, dessa fält, skanningsföretaget kan bara ändra enskilda fält, jag har verkligen aldrig stött på ett sådant behov av behörighetskontroll på kolumnnivå tidigare, jag gjorde ett experiment, jag tycker det är väldigt intressant, spela in det

Kunden har enEfterfrågan, en tabell med mer än 150 fält, bad kunden att endast visa några av fälten för de som skannade företaget, dettaEfterfråganDet kan enkelt implementeras med en vy, och kunden begär att dessa fält ska vara så att skanningsföretaget bara kan ändra enskilda fält, jag har verkligen inte stött på ett sådant behov av behörighetskontroll på kolumnnivå tidigare, jag gjorde ett experiment, jag tycker det är väldigt intressant, spela in detTestprocessen.

1. Skapa en testtabell och infoga punkttestdata:

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

ägare varchar2(50)TABLESPACE_NAME varchar2(50));

Tabell skapad.

SQL> infoga i testet, välj rownum,table_name,owner,

TABLESPACE_NAME från dba_tables;

5490 rader skapade.

SQL> commit;

Commit slutförd.

2. Skapa en testanvändare och ge grundläggande behörigheter:

SQL> CONN / AS SYSDBA

Kopplade.

SQL> skapa användarström identifierad av ströms standardtabellrymdsanvändare;

Användaren skapad.

SQL> koppla och använda resurser till ström;

Grant lyckades.

3. Ge testanvändare kolumnnivåbehörigheter:

SQL> conn auth/auth

Kopplade.

SQL> grant update (id) på test för stream;

Grant lyckades.

SQL> beviljade insättning (table_name) på test för ström;

Grant lyckades.

SQL>

SQL> grant select på test för strömning;

Grant lyckades.

4. Sök på kolumnnivåns behörighetsinställning:

SQL> välj GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,

BIDRAGSBAR FRÅN user_col_privs;

GRANTER ÄGARE TABLE_NAME COLUMN_NAME GRANTOR PRIVILEGE GRA

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

STRÖMAUTENTISERINGSTEST TABLE_NAME AUTENTISERINGSINFOGA NEJ

AUT AUTH TEST ID AUTH INSERT NO

AUT AUTH TEST ID AUTH UPPDATERING NEJ

STRÖMAUTENTISERING TEST-ID AUTENTISERING UPPDATERING NEJ

5. Inloggningstestanvändaren verifierar SELECT-behörighet:

SQL> conn stream/stream

Kopplade.

SQL> välj * från(välj * från auth.test-ordningen med 1) där rownum< = 10;

ID TABLE_NAME ÄGARE TABELLUTRYMME

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

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-SYSTEMET

8 SUBCOLTYPE$ SYS-SYSTEM

9 NTAB$ SYS-SYSTEM

10 REFCON$ SYS-SYSTEM

10 rader valda.

6. Verifiera kolumnnivåns UPDATE-behörighetskontroll:

SQL> update auth.test set owner='STREAM' där id =1;

update auth.test set owner='STREAM' där id =1

  *

FEL på rad 1:

  ORA-01031: insufficient privileges

Det kan ses att värdet i OWNER-fältet i testtabellen inte får ändras, rapportera ORA-01031: Otillräcklig behörighet, eftersom ovanstående ger testanvändaren behörighet att ändra ID-fältet i testtabellen, är det möjligt att ändra ID-fältet.

SQL> update auth.test set id=10 där id=1;

1 rad uppdaterad.

SQL> rollback;

Återställning klar.

7. Verifiera kolumnnivåns INSERT-behörighetskontroll:

SQL> infoga i auth.test-värden (1,'stream', 'stream','users');

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

  *

FEL på rad 1:

  ORA-01031: insufficient privileges

Eftersom ovanstående ger testanvändaren insättningsbehörighet att ändra det TABLE_NAME fältet i testtabellen, är det möjligt att infoga TABLE_NAME fält, men endast om de andra fälten inte har INTE VISSA begränsningar.

SQL> infoga i auth.test(table_name)-värden ("stream");

1 rad skapad.

SQL> rollback;

Återställning klar.






Föregående:Detaljerad steg-för-steg-installation handledning för Oracle 10G
Nästa:Efter att Tencent Analytics aktiverats är systemet upptaget, försök igen senare
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com