Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 13251|Atbildi: 0

[Avots] Oracle datu bāzes kolonnas līmeņa atļauju kontrole

[Kopēt saiti]
Publicēts 11.12.2015 23:47:14 | | |
Klientam ir vajadzība, tabula ar vairāk nekā 150 laukiem, klientam ir nepieciešami tikai daži lauki, lai skenēšanas uzņēmuma cilvēki redzētu, šo prasību var viegli realizēt ar skatu, klients arī pieprasa, šos laukus, skenēšanas uzņēmums var modificēt tikai atsevišķus laukus, es tiešām iepriekš neesmu saskāries ar šādu vajadzību pēc atļauju kontroles kolonnu līmenī, es veicu eksperimentu, es jūtos ļoti interesanti, ierakstiet to

Klientam ir tādsPieprasījums, tabulā ar vairāk nekā 150 laukiem, klients lūdza parādīt tikai dažus laukus personām, kas skenēja uzņēmumu, tasPieprasījumsTo var viegli īstenot ar skatu, un klients pieprasa, lai šie lauki, skenēšanas uzņēmums var modificēt tikai atsevišķus laukus, es tiešām iepriekš neesmu saskāries ar šādu nepieciešamību pēc atļauju kontroles kolonnu līmenī, es veicu eksperimentu, es jūtos ļoti interesanti, ierakstiet toTestsprocess.

1. Izveidojiet testa tabulu un ievietojiet punktu testa datus:

  Sāls> izveidot tabulu test( ID numurs,table_name varchar2(50),

īpašnieks varchar2(50),TABLESPACE_NAME varchar2(50));

Izveidota tabula.

SQL> ievietojiet testā izvēlieties rownum,table_name,īpašnieks,

TABLESPACE_NAME no dba_tables;

Izveidotas 5490 rindas.

SQL> apņemas;

Apņemšanās pabeigta.

2. Izveidojiet testa lietotāju un piešķiriet pamata atļaujas:

SQL> CONN / AS SYSDBA

Savienots.

SQL> izveidot lietotāju plūsmu, ko identificē straumes noklusējuma tabulas lietotāji;

Izveidots lietotājs.

SQL> piešķirt savienojumu, resursu straumei;

Grantam izdevās.

3. Testa lietotājiem slejas līmeņa atļauju piešķiršana.

SQL> conn auth/auth

Savienots.

SQL> piešķirt atjauninājumu (id) testa laikā, lai straumētu;

Grantam izdevās.

SQL> dotācijas ievietojums (table_name) testa laikā, lai straumētu;

Grantam izdevās.

SQL>

SQL> piešķirt atlasi testa laikā, lai straumētu;

Grantam izdevās.

4. Vaicājuma informācija par kolonnas līmeņa atļauju iestatīšanu:

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

PIEŠĶIRAMS no user_col_privs;

GRANTA ĪPAŠNIEKS TABLE_NAME COLUMN_NAME PIEŠĶĪRĒJA PRIVILĒĢIJA GRA

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

STRAUMES AUTENTIFIKĀCIJAS PĀRBAUDE TABLE_NAME AUTENTIFIKĀCIJAS IEVIETOŠANA NĒ

AUT AUTH TEST ID AUTH INSERT NO

AUT AUTH TEST ID AUTENTIFIKĀCIJAS ATJAUNINĀJUMS NĒ

STRAUMES AUTENTIFIKĀCIJAS TESTA ID AUTENTIFIKĀCIJAS ATJAUNINĀJUMS NĒ

5. Pieteikšanās testa lietotājs pārbauda SELECT atļauju:

SQL> conn straume/straume

Savienots.

SQL> atlasiet * no(atlasiet * no autentifikācijas.testa secība ar 1), kur rindas numurs< =10;

ID TABLE_NAME ĪPAŠNIEKA TABULAS VIETA

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

1 ICOL$ SYS SISTĒMA

2 IND$ SYS SISTĒMA

3 COL$ SYS SISTĒMA

4 CLU$ SYS SISTĒMA

5 TAB$ SYS SISTĒMA

6 LOB$ SYS SISTĒMA

7 COLTYPE$ SYS SISTĒMA

8 SUBCOLTYPE$ SYS SISTĒMA

9 NTAB$ SYS SISTĒMA

10 REFCON$ SYS SISTĒMA

Atlasītas 10 rindas.

6. Pārbaudiet kolonnas līmeņa UPDATE atļauju vadīklu:

SQL> atjaunināt auth.test set owner='STREAM', kur id =1;

atjaunināt auth.test set owner='STREAM', kur id =1

  *

KĻŪDA 1. rindā:

  ORA-01031: insufficient privileges

Var redzēt, ka testa tabulas lauka OWNER vērtību nav atļauts modificēt, ziņojums ORA-01031: Nepietiekama atļauja, jo iepriekš minētais dod testa lietotājam atļauju modificēt testa tabulas ID lauku, ir iespējams modificēt ID lauku.

SQL> atjaunināt auth.test kopu id=10, kur id=1;

Atjaunināta 1 rinda.

SQL> atcelšana;

Atcelšana pabeigta.

7. Pārbaudiet kolonnas līmeņa INSERT atļauju vadīklu:

SQL> ievietojiet auth.test vērtības(1,'straume','straume','lietotāji');

Ievietojiet Auth.test vērtības(1;'straume','straume','lietotāji')

  *

KĻŪDA 1. rindā:

  ORA-01031: insufficient privileges

Tā kā iepriekš minētais testa lietotājam dod ievietošanas atļauju modificēt testa tabulas TABLE_NAME lauku, ir iespējams ievietot TABLE_NAME lauku, bet tikai tad, ja pārējiem laukiem nav DAŽU ierobežojumu.

SQL> ievietojiet auth.test(table_name) vērtības ('straume');

Izveidota 1 rinda.

SQL> atcelšana;

Atcelšana pabeigta.






Iepriekšējo:Detalizēta instalēšanas soli pa solim apmācība Oracle 10G
Nākamo:Pēc Tencent Analytics iespējošanas sistēma ir aizņemta, lūdzu, mēģiniet vēlreiz vēlāk
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com