Kliendil on vajadus, tabel, kus on üle 150 välja, klient vajab, et skaneerimisfirma inimesed näeksid ainult mõningaid välju, see nõue saab hõlpsasti teostada vaatega, klient soovib ka, neid välju, skaneerimisettevõte saab muuta ainult üksikuid välju, ma pole varem sellist vajadust loa kontrolli järele kogenud, tegin katse, tunnen end väga huvitavalt, salvesta see
Kliendil on üksNõudlus, laud, kus oli üle 150 välja, palus klient näidata ainult osa väljadest neile, kes ettevõtte skaneerisid, seeNõudlusSeda saab hõlpsasti rakendada vaatega ja klient palub, et need väljad, skaneerimisettevõte saaks muuta ainult üksikuid välju, mul pole varem sellist vajadust veeru tasemel õiguste kontrolli järele olnud, tegin katse, tunnen end väga huvitavalt, salvestasin selleKatseprotsessi. 1. Loo testtabel ja sisesta punktide testiandmed: SQL> loo tabel test(id number,table_name varchar2(50), omanik Varchar2(50),TABLESPACE_NAME Varchar2(50)); Tabel loodud. SQL> sisesta testi select rownum,table_name,owner, TABLESPACE_NAME dba_tables; Loodud 5490 rida. SQL> commit; Pühendu täielikult. 2. Loo testkasutaja ja anna põhilised õigused: SQL> CONN / AS SYSDBA Ühendatud. SQL> loo kasutajavoog, mida tuvastavad voog vaikimisi tabeliruumi kasutajate järgi; Kasutaja loodud. SQL> Grant Connect, ressurss to stream; Grant õnnestus. 3. Anna testkasutajatele veeru tasemel õigused: SQL> conn auth/auth Ühendatud. SQL> grant update (id) testimisel voogedastuseks; Grant õnnestus. SQL> grant insert (table_name) testimisel voogedastuseks; Grant õnnestus. SQL> SQL> grant select testil voogedastamiseks; Grant õnnestus. 4. Päringu veeru tasemel õiguste seadistuste info: SQL> vali GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE, ANTUD user_col_privs; SAAJA OMANIK TABLE_NAME COLUMN_NAME ANDJA PRIVILEEG GRA ------- ----- ---------- ----------- ------- --------- --- VOOGEDASTUSE AUTENTIMISE TEST TABLE_NAME AUTENTIMISE SISESTAMINE EI AUTENTIMISE TEST ID AUTENTIMINE INSERT NO AUTENTIMISE TEST ID AUTENTIMINE UUENDUS EI STREAM AUTENTIMINE TEST ID AUTENTIMISE UUENDUS EI 5. Sisselogimise testkasutaja kontrollib SELECT õigust: SQL> conn stream/stream Ühendatud. SQL> vali * from auth.test order by 1), kus rownum< =10; ID TABLE_NAME OMANIKU LAUARUUM ---------- -------------------- ---------- ---------- 1 ICOL$ SÜSTEEMISÜSTEEM 2 IND$ SÜSTEEMISÜSTEEM 3 COL$ SÜSTEEMISÜSTEEM 4 CLU$ SÜSTEEMISÜSTEEM 5 TAB$ SÜSTEEMISÜSTEEM 6 LOB$ SÜSTEEMISÜSTEEM 7 COLTYPE$ SÜSTEEMISÜSTEEM 8 SUBCOLTYPE$ SÜSTEEMISÜSTEEM 9 NTAB$ SÜSTEEMISÜSTEEM 10 REFCON$ SÜSTEEMISÜSTEEM 10 rida valitud. 6. Veeru tasandi UUENDAMISE kontrolli kontrolli: SQL> uuenda auth.test set owner='STREAM', kus id =1; uuenda auth.test set owner='STREAM', kus id =1 * VIGA reas 1: ORA-01031: insufficient privileges On näha, et testtabeli OWNER välja väärtust ei tohi muuta, raport ORA-01031: Ebapiisav luba, kuna eeltoodu annab testkasutajale loa muuta testtabeli ID-välja, on võimalik ID-välja muuta. SQL> uuenda auth.test set id=10, kus id=1; 1 rida uuendatud. SQL> tagasipööramine; Tagasikeeramine lõpetatud. 7. Kontrolli veerutasandi INSERT õiguste kontrolli: SQL> sisesta auth.test väärtused(1,'stream','stream','users'); sisesta auth.test väärtused (1,'voog','voog','kasutajad') * VIGA reas 1: ORA-01031: insufficient privileges Kuna eelnev annab testkasutajale lisamisõiguse muuta testtabeli TABLE_NAME välja, on võimalik TABLE_NAME välja lisada, kuid ainult siis, kui teistel väljadel ei ole MINGEID piiranguid. SQL> insert into auth.test(table_name) väärtused ('stream'); 1 rida loodud. SQL> tagasipööramine; Tagasikeeramine lõpetatud.
|