Asiakkaalla on tarve, taulukko, jossa on yli 150 kenttää, asiakas vaatii, että skannausyrityksen henkilökunta näkee vain joitakin kenttiä, tämä vaatimus voidaan helposti toteuttaa näkymällä, asiakas pyytää myös näitä kenttiä, skannausyritys voi muokata vain yksittäisiä kenttiä, en ole aiemmin kohdannut tällaista tarvetta käyttöoikeuksien hallinnalle sarakketasolla, tein kokeen, tunnen oloni todella mielenkiintoiseksi, tallenna se
Asiakkaalla on sellainenKysyntä, pöydällä, jossa oli yli 150 kenttää, asiakas pyysi näyttämään vain osan kentistä niille, jotka skannasivat yrityksen, näinKysyntäSen voi helposti toteuttaa näkymällä, ja asiakas pyytää, että nämä kentät, skannausyritys voi muokata vain yksittäisiä kenttiä, en ole aiemmin kohdannut tällaista tarvetta käyttöoikeuksien hallinnalle sarakketasolla, tein kokeilun, tuntuu todella mielenkiintoiselta, tallenna seTestiprosessi. 1. Luo testitaulukko ja lisää pistetestidata: SQL> luo taulukko test(id number,table_name varchar2(50), omistaja varchar2(50),TABLESPACE_NAME varchar2(50)); Taulukko luotu. SQL> lisää testiin valitse rownum,table_name,owner, TABLESPACE_NAME dba_tables; 5490 riviä luotu. SQL> commit; Sitoudu valmiiksi. 2. Luo testikäyttäjä ja anna perusoikeudet: SQL> CONN / AS SYSDBA Yhteys. SQL> luo käyttäjävirta, jotka tunnistetaan virran oletustaulukkotilan käyttäjien mukaan; Käyttäjä luotu. SQL> grant connect, resource to stream; Grant onnistui. 3. Myönnä testikäyttäjille sarakketason käyttöoikeudet: SQL> conn auth/auth Yhteys. SQL> grant update (id) testissä striimiksi; Grant onnistui. SQL> grant insert (table_name) testissä to stream; Grant onnistui. SQL> SQL> Grant Select testissä suoratoistoon; Grant onnistui. 4. Kysy sarakketason käyttöoikeusasetuksista: SQL> valitse GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE, MYÖNNETTY user_col_privs; MYÖNTÄJÄN OMISTAJA TABLE_NAME COLUMN_NAME MYÖNTÄJÄN ETUOIKEUS GRA ------- ----- ---------- ----------- ------- --------- --- SUORATOISTA AUTH-TESTI TABLE_NAME AUTH INSERT NO AUT AUTH TEST ID AUTH INSERT NO AUT AUT TEST ID TODENNUSPÄIVITYS EI STREAM AUTENTIUS TESTI ID PÄIVITYS EI 5. Kirjautumistestikäyttäjä varmistaa SELECT-oikeudet: SQL> conn stream/stream Yhteys. SQL> valitse * from(valitse * auth.test-järjestyksestä 1) missä rownum< =10; ID TABLE_NAME OMISTAJAPÖYTÄTILA ---------- -------------------- ---------- ---------- 1 ICOL$ JÄRJESTELMÄJÄRJESTELMÄ 2 IND$ JÄRJESTELMÄJÄRJESTELMÄ 3 COL$ JÄRJESTELMÄJÄRJESTELMÄ 4 CLU$ JÄRJESTELMÄJÄRJESTELMÄ 5 TAB$ JÄRJESTELMÄJÄRJESTELMÄ 6 LOB$ JÄRJESTELMÄJÄRJESTELMÄ 7 COLTYPE$ JÄRJESTELMÄJÄRJESTELMÄ 8 SUBCOLTYPE$ SYS SYSTEM 9 NTAB$ JÄRJESTELMÄJÄRJESTELMÄ 10 REFCON$ JÄRJESTELMÄJÄRJESTELMÄ 10 riviä valittuna. 6. Vahvista sarakketason PÄIVITYS-käyttöoikeuksien hallinta: SQL> päivitä auth.test set owner='STREAM', missä id =1; päivitä auth.test set owner='STREAM', missä id =1 * VIRHE rivillä 1: ORA-01031: insufficient privileges On nähtävissä, että testitaulukon OWNER-kentän arvoa ei saa muuttaa, raportti ORA-01031: Riittämätön käyttöoikeus, koska yllä oleva antaa testikäyttäjälle oikeuden muokata testitaulukon ID-kenttää, ID-kenttää voi muuttaa. SQL> päivitä auth.test set id=10, missä id=1; 1 rivi päivitetty. SQL> rollback; Palautus suoritettu. 7. Vahvista sarakketason INSERT-käyttöoikeuksien hallinta: SQL> lisää auth.test-arvot (1,'stream','stream','users'); lisää auth.test-arvot (1,'stream','stream','users') * VIRHE rivillä 1: ORA-01031: insufficient privileges Koska yllä oleva antaa testikäyttäjälle lisäysoikeuden muokata testitaulukon TABLE_NAME kenttää, on mahdollista lisätä TABLE_NAME kenttä, mutta vain jos muilla kentillä ei ole JOITAIN rajoituksia. SQL> lisää auth.test(table_name) arvot ('stream'); 1 rivi luotu. SQL> rollback; Palautus suoritettu.
|