Pelanggan memiliki kebutuhan, tabel lebih dari 150 bidang, pelanggan hanya membutuhkan beberapa bidang untuk dilihat oleh orang-orang dari perusahaan pemindaian, persyaratan ini dapat dengan mudah direalisasikan dengan tampilan, pelanggan juga meminta, bidang ini, perusahaan pemindaian hanya dapat memodifikasi bidang individu, saya benar-benar belum pernah menemukan kebutuhan untuk kontrol izin di tingkat kolom sebelumnya, saya melakukan percobaan, saya merasa sangat menarik, catatlah
Pelanggan memilikinyapermintaan, tabel dengan lebih dari 150 bidang, pelanggan meminta untuk hanya menunjukkan beberapa bidang kepada orang-orang yang memindai perusahaan, inipermintaanIni dapat dengan mudah diterapkan dengan tampilan, dan pelanggan meminta bahwa bidang ini, perusahaan pemindaian hanya dapat memodifikasi bidang individual, saya benar-benar belum pernah menemukan kebutuhan untuk kontrol izin di tingkat kolom sebelumnya, saya melakukan percobaan, saya merasa sangat menarik, rekamUjianproses. 1. Buat tabel pengujian dan sisipkan data pengujian titik: SQL> membuat tabel test( nomor id, table_name varchar2(50), pemilik varchar2(50),TABLESPACE_NAME varchar2(50)); Tabel dibuat. SQL> masukkan ke dalam uji pilih rownum,table_name,owner, TABLESPACE_NAME dari dba_tables; 5490 baris dibuat. SQL> komitmen; Komitmen selesai. 2. Buat pengguna pengujian dan berikan izin dasar: SQL> CONN / AS SYSDBA Terhubung. SQL> membuat aliran pengguna yang diidentifikasi oleh pengguna tablespace default aliran; Pengguna dibuat. SQL> memberikan koneksi, sumber daya untuk streaming; Grant berhasil. 3. Berikan izin tingkat kolom kepada pengguna pengujian: SQL> conn auth/auth Terhubung. SQL> memberikan pembaruan (id) pada pengujian untuk streaming; Grant berhasil. SQL> memberikan sisipan (table_name) pada pengujian untuk streaming; Grant berhasil. SQL> SQL> memberikan pilihan pada pengujian untuk streaming; Grant berhasil. 4. Kueri informasi pengaturan izin tingkat kolom: SQL> pilih GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE, DAPAT DIBERIKAN dari user_col_privs; HAK ISTIMEWA PEMILIK TABLE_NAME COLUMN_NAME PEMBERI GRA ------- ----- ---------- ----------- ------- --------- --- TES AUTENTIK ALIRAN TABLE_NAME SISIPKAN AUTENTIKASI NO AUTENTIKASI ID AUTENTIKASI NO AUTENTIKASI ID AUTENTIKASI TES AUTENTIKASI NO PEMBARUAN ID PENGUJIAN AUTENTIKASI STREAMING PEMBARUAN NO 5. Pengguna uji login memverifikasi izin PILIH: SQL> conn stream/stream Terhubung. SQL> pilih * dari(pilih * dari urutan auth.test dengan 1) di mana rownum< =10; ID TABLE_NAME RUANG MEJA PEMILIK ---------- -------------------- ---------- ---------- 1 SISTEM SYS ICOL $ 2 IND$ SISTEM SYS 3 SISTEM SISTEM COL$ 4 SISTEM SISTEM CLU$ 5 SISTEM SISTEM TAB$ 6 SISTEM LOB$ SYS 7 SISTEM SISTEM COLTYPE$ 8 SISTEM SISTEM SUBCOLTYPE$ 9 SISTEM SYS NTAB$ 10 SISTEM SISTEM REFCON$ 10 baris dipilih. 6. Verifikasi kontrol izin UPDATE tingkat kolom: SQL> update auth.test set owner='STREAM' di mana id =1; update auth.test set owner='STREAM' di mana id =1 * KESALAHAN di baris 1: ORA-01031: insufficient privileges Dapat dilihat bahwa nilai bidang OWNER dari tabel pengujian tidak diizinkan untuk dimodifikasi, laporkan ORA-01031: Izin tidak mencukupi, karena di atas memberi pengguna pengujian izin untuk mengubah bidang ID tabel pengujian, dimungkinkan untuk memodifikasi bidang ID. SQL> update auth.test set id=10 di mana id=1; 1 baris diperbarui. SQL> rollback; Rollback selesai. 7. Verifikasi kontrol izin INSERT tingkat kolom: SQL> masukkan ke dalam nilai auth.test(1,'stream','stream','users'); Masukkan ke dalam nilai auth.test(1,'aliran','aliran','pengguna') * KESALAHAN di baris 1: ORA-01031: insufficient privileges Karena hal di atas memberi pengguna pengujian izin penyisipan untuk memodifikasi bidang TABLE_NAME tabel pengujian, dimungkinkan untuk menyisipkan bidang TABLE_NAME, tetapi hanya jika bidang lain tidak memiliki TIDAK BEBERAPA batasan. SQL> masukkan ke dalam nilai auth.test(table_name) ('stream'); 1 baris dibuat. SQL> rollback; Rollback selesai.
|