Oracle memberikan hak baca kepada pengguna atas tabel. Hak istimewa sistem
Pada postingan sebelumnya di paragraf 2, saya menulis cara memperbaiki masalah Oracle yang salah diinstal. Ternyata apa yang saya tulis tidak sepenuhnya menyelesaikan masalah, jadi saya bongkar dan instal lagi di bawah akun lokal. Sekarang semuanya berfungsi karena perlu dan memungkinkan untuk terus belajar.
Saat menginstal Oracle, dua pengguna/skema dibuat secara default - sistem Dan SISTEM. Saya menulis "pengguna/skema" karena ketika pengguna baru dibuat, skema dengan nama yang sama dibuat untuknya. Tidak jelas bagaimana konsep “pengguna” berbeda dari konsep “skema”. Untuk memahaminya, bayangkan seorang pengguna Windows (Unix). Pengguna memiliki nama Nama belakang dan folder miliknya - C:\Pengguna\NamaPengguna (/home/Nama Pengguna). Jadi, pengguna Oracle mirip dengan pengguna Windows, dan skemanya mirip dengan folder pengguna. Sama seperti pengguna Windows, pengguna Oracle memiliki serangkaian hak. Sama seperti folder pengguna Windows yang berisi berbagai file, skema Oracle juga berisi berbagai objek - tabel, urutan, pemicu, dll. Untuk melanjutkan analoginya, pengguna sistem Dan SISTEM dapat dianggap sebagai Administrator Windows atau pengguna root Unix. Mereka mempunyai hak yang tidak terbatas. Dan tidak disarankan untuk bekerja di bawahnya. Oleh karena itu, Anda harus membuat pengguna lain terlebih dahulu.
1. Membuat pengguna dan memberinya hak
Mari buat pengguna, misalnya fiftin:BUAT lima puluh PENGGUNA YANG DIIDENTIFIKASI OLEH 123456; Kami membuat pengguna keliman dengan kata sandi 123456. Dia sama sekali tidak punya hak. Anda bahkan tidak akan bisa masuk di bawahnya:
SQL> sambungkan fiftin Masukkan kata sandi: KESALAHAN: ORA-01045: pengguna FIFTIN tidak memiliki hak istimewa CREATE SESSION; logon ditolak Untuk memberikan hak pengguna, ada perintah GRANT. Sebagai contoh, mari kita berikan lima puluh hak kepada pengguna untuk masuk:
HIBAH BUAT SESI KEPADA lima puluh; Jika sekarang Anda mencoba terhubung sebagai pengguna fiftin, Anda akan berhasil. Tapi hanya ini yang boleh dilakukan oleh pengguna fiftin. Mari berikan hak administrator kepada pengguna:
MEMBERIKAN dba KE fiftin DENGAN OPSI ADMIN; Sekarang Anda dapat terhubung ke database di bawah fiftin sebagai administrator:
connect fiftin/fiftin Mari kita buat tabel:
BUAT TABEL tabel1(id INT, kolom1 INT); Mari masukkan datanya:
MASUKKAN KE tabel1(id, kolom1) NILAI (0, 1)
2. Hak untuk membuat tabel
Mari buat pengguna lain - uji:BUAT tes PENGGUNA DIIDENTIFIKASI OLEH 123; Mari beri dia hak:
GRANT membuat sesi buat tabel Untuk mengetes; Sekarang tes pengguna dapat menghubungkan dan membuat tabel. Mari kita coba membuat tabel (jangan lupa untuk diuji):
BUAT TABEL tbl_test(id int, kolom1 INT); Kami mendapatkan kesalahan:
ORA-01950: tidak ada hak istimewa pada tablespace "SYSTEM" Mengapa demikian? Ternyata agar pengguna biasa (bukan administrator) dapat membuat sesuatu di database, ia perlu mengalokasikan ruang untuk itu. Mari masuk lagi di bawah fiftin dan jalankan perintah:
ALTER USER tes KUOTA 50m ON sistem; Dengan perintah ini kami mengalokasikan 50MB untuk pengguna uji untuk kebutuhannya. Sekarang cobalah masuk sebagai pengguna tes dan buat tabel dan Anda akan berhasil.
3. Hak akses ke tabel dari skema lain
Sekarang mari kita asumsikan bahwa pengujian pengguna harus mengambil data dari tabel table1t. Secara teori, untuk melakukan ini, Anda perlu memanggil perintah:PILIH * DARI tabel1; Tapi itu tidak berhasil. Hal ini karena tabel table1 berada dalam skema kelima dan pengujian pengguna tidak melihatnya (pengujian hanya melihat tabel dalam skemanya). Agar pengujian dapat melihat tabel table1, Anda harus secara eksplisit menunjukkan bahwa tabel tersebut ada dalam skema pengujian - fiftin.table1. Namun jika sekarang Anda mencoba mengakses tabel fiftin.table1, Anda tetap tidak akan melihatnya. Karena pengguna uji tidak memiliki hak untuk mengakses data dari skema lain (seperti halnya pengguna Windows tidak dapat melihat file pengguna lain kecuali dia memiliki hak untuk melakukannya).
Untuk memberikan hak pengguna uji untuk membaca data dari tabel fiftin.table1, Anda perlu memanggil perintah:
GRANT SELECT PADA fiftin.table1 UNTUK menguji Sekarang mari ulangi upaya membaca dari fiftin.table1 di bawah pengguna uji. Hore, itu berhasil!
4. Sinonim
Agar tidak menulis "fiftin.table1" setiap saat, Oracle menyediakan kemampuan untuk membuat sinonim. Kita dapat membuat sinonim untuk tabel1 dalam skema pengujian dan merujuknya dengan nama pendeknya.Pertama, mari berikan hak kepada pengguna uji untuk membuat sinonim:
GRANT CREATE SYNONYM TO test Sekarang mari kita buat sinonimnya sendiri:
BUAT SINONIM tabel1 UNTUK fiftin.table1; Semua.
Otentikasi Pengguna
Otentikasi berarti memverifikasi identitas seseorang atau sesuatu (pengguna, perangkat, dan entitas lain) yang ingin menggunakan data, sumber daya, atau aplikasi. Hal ini dilakukan untuk menjalin hubungan saling percaya sebelum interaksi lebih lanjut. Selain itu, otentikasi memberikan kemampuan untuk mengidentifikasi, memungkinkan akses dan tindakan dikaitkan dengan identitas tertentu. Setelah diautentikasi, proses otorisasi dapat memberikan atau membatasi tingkat akses dan tindakan yang diperbolehkan untuk entitas tertentu.
Saat membuat pengguna, Anda harus memutuskan metode otentikasi mana yang akan digunakan. Metode ini dapat diubah nanti.
Kata sandi (metode otentikasi kata sandi)
Cara ini juga biasa disebut dengan autentikasi database Oracle, yang mana setiap pengguna dibuat beserta passwordnya. Kata sandi ini harus ditentukan oleh pengguna saat mencoba membuat sambungan. Ketika administrator menetapkan kata sandi, mereka harus segera menetapkan kata sandi tersebut agar kedaluwarsa. Ini akan memaksa pengguna untuk mengubah kata sandi saat pertama kali terhubung. Namun, kehati-hatian harus diberikan untuk memastikan bahwa pengguna memiliki kesempatan untuk mengubah kata sandi. Beberapa aplikasi tidak mengizinkan hal ini.
Kata sandi selalu dienkripsi secara otomatis dan transparan ketika koneksi jaringan dibuat (dalam arsitektur klien/server dan server/server). Algoritma DES (Data Encryption Standard) yang dimodifikasi digunakan untuk mengenkripsi kata sandi sebelum mengirimkannya melalui jaringan.
Eksternal (metode otentikasi eksternal)
Metode ini juga biasa disebut sebagai otentikasi tingkat sistem operasi. Dengan menggunakan metode ini, pengguna dapat terhubung ke Oracle dengan lebih mudah tanpa memberikan nama pengguna dan kata sandi. Basis data bergantung pada sistem operasi atau layanan otentikasi jaringan untuk membatasi akses ke akun pengguna basis data. Kata sandi basis data tidak digunakan untuk jenis pembuatan koneksi ini. Metode otentikasi ini dapat digunakan jika sistem operasi atau layanan jaringan mengizinkannya. Jika memungkinkan, atur parameter inisialisasi OS_AUTHENT_PREFIX ke awalan yang digunakan dalam nama pengguna Oracle. Oracle menempatkan awalan ini di awal nama akun setiap pengguna sistem operasi. Nilai default parameternya adalah OPS$, yang memastikan kompatibilitas dengan versi server Oracle sebelumnya. Ketika pengguna OS mencoba untuk terhubung, Oracle menggabungkan awalan dengan nama pengguna di OS dan kemudian mencocokkan string yang dihasilkan dengan nama pengguna di database.
Misalnya, nilai parameternya adalah sebagai berikut:
OS_AUTHENT_PREFIX=OPS$
Ketika pengguna sistem operasi bernama tsmith terhubung ke database Oracle dan mengautentikasi di tingkat OS, Oracle memverifikasi bahwa ada pengguna yang sesuai OPS$tsmith di database dan, jika demikian, mengizinkan koneksi pengguna tersebut. Semua referensi ke pengguna yang diautentikasi pada tingkat sistem operasi harus diawali (OPS$tsmith).
Catatan: Nilai teks parameter OS_AUTHENT_PREFIX di beberapa sistem operasi peka huruf besar-kecil. Untuk informasi selengkapnya tentang pengaturan ini, lihat dokumentasi Oracle khusus OS.
Global (metode otentikasi global)
Ini adalah otentikasi kuat yang dilakukan menggunakan opsi Oracle Advanced Security. Otentikasi global memungkinkan Anda mengidentifikasi pengguna secara biometrik, berdasarkan sertifikat x509, perangkat token, dan menggunakan Oracle Internet Directory. Informasi lebih lanjut tentang metode otentikasi tingkat lanjut ini dibahas dalam kursus Oracle Enterprise Identity Management.
Hak istimewa sistem
Nama | Tujuan |
ANALISIS APAPUN | Memungkinkan Anda menganalisis tabel, cluster, atau indeks apa pun dalam skema apa pun |
AUDIT APAPUN | Memungkinkan Anda mencatat objek apa pun dalam skema apa pun |
POTONG APAPUN | Memungkinkan Anda menghapus semua baris tabel atau klaster mana pun dalam skema apa pun |
BUAT KLUSTER | Memungkinkan Anda membuat klaster dalam skema Anda sendiri |
MENGUBAH CLUSTER APAPUN | Memungkinkan Anda mengubah cluster apa pun dalam skema apa pun |
BUAT CLUSTER APAPUN | Memungkinkan Anda membuat cluster dalam skema apa pun |
JATUHKAN CLUSTER APAPUN | Memungkinkan Anda menghapus cluster mana pun dalam skema apa pun |
MENGUBAH DATABASE | Memungkinkan Anda mengubah database |
BUAT LINK DATABASE | Memungkinkan Anda membuat saluran akses pribadi sesuai skema Anda sendiri |
BUAT LINK DATABASE PUBLIK | Memungkinkan Anda membuat saluran akses umum |
HAPUS LINK DATABASE PUBLIK | Memungkinkan Anda menghapus saluran akses bersama |
BUAT INDEKS | Memungkinkan Anda membuat indeks dalam skema Anda sendiri untuk tabel mana pun dalam skema tersebut |
UBAH INDEKS APA PUN | Memungkinkan Anda mengubah indeks dalam skema apa pun |
BUAT INDEKS APAPUN | Memungkinkan Anda membuat indeks dalam skema apa pun untuk tabel apa pun dalam skema apa pun |
JATUHKAN INDEKS APAPUN | Memungkinkan Anda menghapus indeks apa pun dalam skema apa pun |
BUAT PROSEDUR | Memungkinkan Anda membuat prosedur, fungsi, dan paket tersimpan dalam skema Anda sendiri |
UBAH PROSEDUR APAPUN | Memungkinkan Anda mengubah prosedur, fungsi, dan paket tersimpan dalam skema apa pun |
BUAT PROSEDUR APAPUN | Memungkinkan Anda membuat prosedur, fungsi, dan paket tersimpan dalam skema apa pun |
JATUHKAN PROSEDUR APAPUN | Memungkinkan Anda menghapus prosedur, fungsi, dan paket tersimpan dalam skema apa pun |
JALANKAN PROSEDUR APAPUN | Mengizinkan eksekusi prosedur, fungsi, dan paket tersimpan apa pun, atau referensi ke variabel paket bersama dalam skema apa pun |
CANTUMKAN HAK ISTIMEWA APAPUN | Memungkinkan Anda memberikan hak istimewa sistem meskipun Anda tidak memilikinya |
MENGUBAH PROFIL | Memungkinkan Anda mengubah profil apa pun di database |
BUAT PROFIL | Memungkinkan Anda membuat profil |
JATUHKAN PROFIL | Memungkinkan Anda menghapus profil apa pun di database |
MENGUBAH BIAYA SUMBER DAYA | Memungkinkan Anda mengatur biaya sumber daya sesi |
BUAT PERAN | Memungkinkan Anda membuat peran |
UBAH PERAN APA PUN | Memungkinkan Anda mengubah peran apa pun dalam database |
JATUHKAN PERAN APAPUN | Memungkinkan Anda menghapus peran apa pun dalam database |
BERIKAN PERAN APAPUN | Memungkinkan Anda memberikan peran apa pun dalam database |
MENGUBAH SEGMEN ROLLBACK | Memungkinkan Anda mengubah segmen rollback |
BUAT SEGMEN ROLLBACK | Memungkinkan Anda membuat segmen rollback |
SEGMEN ROP ROLLBACK | Memungkinkan Anda menghapus segmen rollback |
MENGUBAH SESI | Memungkinkan Anda mengubah parameter sesi kerja saat ini: alat penelusuran SQL, bahasa nasional, atau saluran komunikasi basis data |
BUAT SESI | Memungkinkan Anda terhubung ke database |
SESI TERBATAS | Memungkinkan Anda masuk setelah memulai database dengan parameter STARTUP RESTRICT |
BUAT URUTAN | Memungkinkan Anda membuat urutan dalam diagram Anda sendiri |
UBAH URUTAN APA PUN | Memungkinkan Anda mengubah urutan apa pun di sirkuit mana pun |
BUAT URUTAN APA PUN | Memungkinkan Anda membuat urutan dalam diagram apa pun |
JATUHKAN URUTAN APAPUN | Memungkinkan Anda menghapus urutan apa pun di sirkuit mana pun |
PILIH URUTAN APAPUN | Memungkinkan Anda mengakses urutan apa pun di sirkuit mana pun |
BUAT GAMBARAN | Memungkinkan Anda membuat snapshot dalam skema Anda sendiri. Membutuhkan hak istimewa CREATE TABLE |
UBAH SNAPSHOT APAPUN | Memungkinkan Anda mengubah snapshot apa pun dalam skema apa pun |
BUAT SNAPSHOT APAPUN | Memungkinkan Anda membuat snapshot dalam skema apa pun. Membutuhkan hak istimewa BUAT TABEL APAPUN |
JATUHKAN SNAPSHOT APAPUN | Memungkinkan Anda menghapus snapshot apa pun dalam skema apa pun |
BUAT SINONIM | Memungkinkan Anda membuat sinonim dalam skema Anda sendiri |
BUAT SINONIM APAPUN | Memungkinkan Anda membuat sinonim dalam skema apa pun |
JATUHKAN SINONIM APAPUN | Memungkinkan Anda menghapus sinonim apa pun dalam skema apa pun, kecuali sinonim umum |
BUAT SINONIM PUBLIK | Memungkinkan Anda membuat sinonim umum |
JATUHKAN SINONIM PUBLIK | Memungkinkan Anda menghapus sinonim umum |
SISTEM AUDIT | Memungkinkan Anda mencatat peristiwa sistem |
MENGUBAH SISTEM | Memungkinkan Anda mengubah parameter sistem: batas sumber daya, proses server bersama atau proses manajer, grup file log, pos pemeriksaan, pemulihan terdistribusi, pemeriksaan akses file |
BUAT TABEL | Memungkinkan Anda membuat tabel dalam skema Anda sendiri. Membutuhkan hak istimewa TABLESPACE atau kuota tablespace TANPA BATAS |
UBAH TABEL APAPUN | Memungkinkan Anda mengubah tabel apa pun dalam skema apa pun |
CADANGAN TABEL APAPUN | Memungkinkan Anda menggunakan utilitas Ekspor untuk mengekspor tabel apa pun dalam skema apa pun |
KOMENTAR TABEL APAPUN | Memungkinkan Anda mengomentari tabel atau kolom mana pun dalam skema apa pun |
BUAT TABEL APAPUN | Memungkinkan Anda membuat tabel apa pun dalam skema apa pun |
HAPUS TABEL APAPUN | Memungkinkan Anda menghapus baris dari tabel, tampilan, atau snapshot mana pun dalam skema apa pun |
JATUHKAN TABEL APAPUN | Memungkinkan Anda menghapus tabel apa pun dalam skema apa pun |
MASUKKAN TABEL APAPUN | Memungkinkan Anda menambahkan baris ke tabel, tampilan, atau snapshot apa pun dalam skema apa pun |
KUNCI MEJA APAPUN | Memungkinkan Anda mengunci tabel apa pun dalam skema apa pun |
PILIH TABEL APAPUN | Memungkinkan Anda melakukan kueri dari tabel tampilan atau snapshot apa pun dalam skema apa pun |
PERBARUI TABEL APAPUN | Memungkinkan Anda mengubah baris tabel, tampilan, atau snapshot apa pun dalam skema apa pun |
ALTER TABLESPACE | Memungkinkan Anda mengubah tablespace |
BUAT RUANG TABEL | Memungkinkan Anda membuat tablespace |
JATUHKAN RUANG TABEL | Memungkinkan Anda menghapus tablespace |
KELOLA TABLESPACE | Memungkinkan Anda mengambil tablespace secara offline dan online, serta memulai dan mengakhiri penyelamatan tablespace |
RUANG TABEL TANPA BATAS | Memungkinkan Anda menggunakan ruang meja mana pun dalam jumlah tak terbatas |
BUAT PEMICU | Memungkinkan Anda membuat pemicu di sirkuit Anda sendiri |
UBAH PEMICU APA PUN | Memungkinkan Anda mengaktifkan, menonaktifkan, atau mengkompilasi pemicu apa pun di sirkuit mana pun |
CERATE SETIAP PEMICU | Memungkinkan Anda membuat pemicu dalam skema apa pun, yang dikaitkan dengan tabel apa pun dalam skema apa pun |
JATUHKAN PEMICU APAPUN | Memungkinkan Anda menghapus pemicu apa pun di sirkuit mana pun |
MENGUBAH PENGGUNA | Memungkinkan Anda mengubah kata sandi, ruang tabel, dan kuota untuk pengguna lain, menetapkan profil dan peran default |
MENJADI PENGGUNA | Memungkinkan Anda menjadi pengguna lain. Digunakan oleh program Impor saat memuat data ke skema pengguna lain |
BUAT PENGGUNA | Memungkinkan Anda membuat pengguna, menetapkan kuota di tablespace mana pun, mengatur tablespace default dan tablespace sementara, menetapkan profil |
JATUHKAN PENGGUNA | Memungkinkan Anda menghapus pengguna lain |
BUAT TAMPILAN | Memungkinkan Anda membuat tampilan dalam skema Anda sendiri |
BUAT TAMPILAN APAPUN | Memungkinkan Anda membuat tampilan dalam skema apa pun |
JATUHKAN TAMPILAN APAPUN | Memungkinkan Anda menghapus tampilan apa pun dalam skema apa pun |
Keistimewaan Objek
Nama | Tujuan |
SEMUA | Semua hak istimewa untuk objek ini diberikan |
SEMUA HAK ISTIMEWA | Sama seperti SEMUA |
MENGUBAH | Memungkinkan Anda mengubah definisi |
MENGHAPUS | Memungkinkan Anda menghapus baris |
MENJALANKAN | Memungkinkan Anda mengeksekusi suatu objek dan juga mengakses variabelnya |
INDEKS | Memungkinkan Anda membuat indeks |
MENYISIPKAN | Memungkinkan Anda menambahkan baris |
REFERENSI | Memungkinkan Anda membuat batasan yang mereferensikan tabel. Hak istimewa ini tidak dapat diberikan pada suatu peran |
PILIH | Memungkinkan Anda membuat permintaan |
MEMPERBARUI | Memungkinkan Anda mengubah string |
Korespondensi antara objek data dan hak istimewa.
Nama hak istimewa | Tabel | Perwakilan | Menindaklanjuti telnosti |
Paket Fungsi Prosedur | Jepretan |
MENGUBAH | X | X | |||
MENGHAPUS | X | X | |||
MENJALANKAN | X | ||||
INDEKS | X | ||||
MENYISIPKAN | X | X | |||
REFERENSI | X | ||||
PILIH | X | X | X | X | |
MEMPERBARUI | X | X | X |
Pengguna dan peran.
Peran- tipe objek yang digunakan untuk menyederhanakan pengelolaan hak istimewa tingkat sistem dan objek. Daripada memberikan hak istimewa secara langsung ke bagian akun pengguna, Anda dapat menetapkan hak istimewa ke peran, yang kemudian diberikan kepada pengguna.
Peran, pada dasarnya, adalah kelompok hak istimewa tingkat sistem dan objek. Mereka membuat pengelolaan hak istimewa menjadi lebih mudah karena Anda dapat mengonfigurasi hak istimewa satu kali untuk masing-masing jenis pengguna dan kemudian menetapkan hak istimewa tersebut ke peran. Ketika pengguna memerlukan sekelompok hak istimewa tertentu, perintah penetapan peran tunggal dapat digunakan untuk memuaskan pengguna tersebut. Tanpa peran, Anda harus memasukkan beberapa perintah untuk setiap hak istimewa yang diperlukan.
Selain itu, Anda dapat membuat peran berbeda dengan hak istimewa, meskipun belum ada akun pengguna Oracle yang memerlukan peran tersebut. Anda dapat menetapkan peran ke peran lain, membentuk hierarkinya. Anda juga dapat melindungi peran dengan kata sandi yang harus dimasukkan pengguna untuk mengaktifkan peran tersebut.
Seperti telah disebutkan, database fisik dapat berisi banyak bagian akun pengguna Oracle yang dilindungi kata sandi. Anda harus memasukkan nama pengguna dan kata sandi apa pun alat yang Anda gunakan untuk mengakses database. Perannya tidak sama dengan pengguna Oracle; Anda tidak dapat terhubung ke database dengan memasukkan nama peran dan kata sandi.
Pencatatan (audit).
Mesin logging Oracle menyediakan tiga jenis protokol.
- Protokol hak istimewa melacak hak istimewa sistem mana yang digunakan.
- Log pernyataan melacak pernyataan SQL mana yang digunakan pada semua objek.
- Protokol lapisan objek mengontrol akses ke objek.
Anda dapat menjalankan log ini untuk melacak kapan pernyataan berhasil dan kapan gagal. Anda dapat menggunakan logging untuk melacak setiap upaya intrusi ke dalam sistem Anda.
Selain itu, Anda dapat mengatur apa yang tercatat dalam protokol. Satu elemen per operasi dapat ditulis, terlepas dari berapa banyak upaya yang dilakukan untuk melakukan operasi selama sesi koneksi. Atau, alternatifnya, satu elemen log dicatat untuk setiap upaya operasi (berhasil atau gagal) selama sesi.
Informasi log disimpan dalam tabel kamus data, yang berisi operasi yang dicatat, ID pengguna yang melakukan operasi, dan tanggal dan waktu operasi. Oracle menyediakan serangkaian tampilan kamus data untuk membuat informasi dalam tabel log lebih mudah dibaca. Baris yang dimasukkan ke dalam protokol terus disimpan meskipun pengguna membatalkan transaksi.
Administrator database dapat menghapus atau mengarsipkan log secara berkala.
2.3.5. Dukungan bahasa nasional
Alat Dukungan Bahasa Nasional (NLS) Oracle memungkinkan pengguna untuk menggunakan database dalam bahasa mereka sendiri. Alat ini menyediakan fitur-fitur berikut:
- Dukungan untuk berbagai skema pengkodean, mis. data yang dibuat dalam skema pengkodean pada satu mesin dapat diproses dan disajikan pada mesin lain.
- Mengontrol bahasa untuk menampilkan kesalahan server dan pesan informasi, angka, tanggal, format mata uang dan hari awal dalam seminggu.
- Dukungan penyortiran linguistik memastikan karakter muncul dalam urutan yang benar.
Anda dapat menambahkan dukungan untuk bahasa baru menggunakan produk perangkat lunak NLS*WorkBench, yang pada dasarnya memelihara tabel terjemahan untuk menafsirkan masukan pengguna dan menampilkan hasil.
Ketika sistem aplikasi dikirimkan dengan aplikasi dalam berbagai bahasa, bagian terpenting dari antarmuka pengguna adalah berbagai tooltip, pustaka teks standar, dan pesan aplikasi. Saat ini, terserah kepada pengembang aplikasi untuk menentukan bagaimana perpustakaan teks standar sistem aplikasi, tooltips, dan pesan berubah dari satu bahasa ke bahasa lain. Oracle sedang mengerjakan produk perangkat lunak terjemahan otomatis untuk mempermudah tugas ini.
Implementasi pernyataan GRANT oleh Oracle mendukung sejumlah besar variasi dan perubahan. Sintaksnya adalah sebagai berikut.
HIBAH ([objek_hak istimewa] [, ...] |
[hak istimewa_sistem] [, …] |
[peran] [, …]) [objek] [, …] |
[nama_skema.] [objek]) LALU ((nama_penerima [, ...]
| nama_peran [, …] | PUBLIK)
Anda dapat menetapkan beberapa hak istimewa dalam satu pernyataan, tetapi hak istimewa tersebut harus bertipe sama (objek, sistem, atau peran).
Misalnya, Anda dapat memberikan tiga hak istimewa objek kepada pengguna dalam satu tabel dengan satu pernyataan GRANT, kemudian menggunakan pernyataan terpisah untuk menetapkan dua hak istimewa sistem ke suatu peran, dan kemudian menetapkan beberapa peran kepada pengguna dalam pernyataan ketiga, tetapi Anda tidak dapat melakukannya semuanya dalam satu pernyataan GRANT. .
Berikut ini adalah parameter pernyataan GRANT platform Oracle.
nama_objek_hak istimewa
Hak istimewa untuk mengakses objek skema tertentu (seperti tabel atau tampilan) ditetapkan ke penerima (nama_penerima) atau peran tertentu. Anda dapat menggabungkan beberapa hak istimewa objek, objek skema, atau penerima dalam satu pernyataan. Namun, Anda tidak dapat menggabungkan penetapan hak istimewa atau peran sistem dengan penetapan hak istimewa objek dalam pernyataan yang sama. Hak istimewa objek berikut ada.
SEMUA
Semua hak akses yang tersedia pada objek skema ditetapkan. Dapat diterapkan pada tabel.
Memberikan hak untuk mengubah tabel yang ada menggunakan pernyataan ALTER TABLE. Dapat diterapkan pada tabel dan urutan.
Memberikan hak untuk mengakses tabel menggunakan debugger. Akses ini berlaku untuk semua pemicu tabel dan informasi apa pun tentang kode SQL yang mengakses tabel secara langsung. Dapat diterapkan pada tabel, tampilan, prosedur, fungsi, paket, objek Java, dan tipe.
Memberikan hak untuk menjalankan prosedur tersimpan, fungsi yang ditentukan pengguna, atau paket. Dapat diterapkan pada prosedur, fungsi, paket, objek Java, pustaka, tipe, tipe indeks, dan operator yang ditentukan pengguna.
Memberikan hak untuk membuat indeks pada tabel.
(PADA KOMITMEN REFRESH QUERY PENULISAN ULANG)
Memberikan hak istimewa untuk membuat tampilan terwujud yang disegarkan saat dilakukan, atau untuk membuat tampilan terwujud untuk menulis ulang kueri pada tabel yang ditentukan. Hanya berlaku untuk pandangan yang terwujud.
(BACA | TULIS)
Memberikan hak istimewa untuk membaca dan menulis file di direktori yang ditentukan oleh jalur lengkap ke direktori sistem operasi. Karena sistem Oracle memiliki kemampuan untuk menyimpan file di luar database, proses server Oracle harus dimulai oleh pengguna yang memiliki hak akses ke direktori yang ditentukan. Anda dapat mengaktifkan keamanan per pengguna di Oracle menggunakan mekanisme ini. Perhatikan bahwa klausa WRITE hanya dapat digunakan dengan tabel eksternal, seperti file log atau file kesalahan.
REFERENSI
Hak untuk menentukan batasan yang menegakkan integritas referensial diberikan. Dapat digunakan dalam tabel.
(PILIH | MASUKKAN | PERBARUI HAPUS)
Memberikan hak untuk menjalankan perintah SQL yang sesuai terhadap objek skema yang ditentukan. Dapat digunakan pada tabel, tampilan, urutan (hanya SELECT), dan tampilan terwujud (hanya SELECT). Perhatikan bahwa Anda harus memberikan hak istimewa SELECT kepada pengguna atau peran yang memerlukan hak istimewa DELETE. Anda dapat menetapkan hak istimewa pada tingkat kolom dengan menyertakan daftar kolom dalam tanda kurung dalam pernyataan setelah nama objek. Ini hanya mungkin bila Anda memberikan hak istimewa objek INSERT, REFERENCES, atau UPDATE pada tabel atau tampilan.
Memberikan hak untuk membuat tampilan anak dari tampilan tertentu. Hanya digunakan dengan tampilan dan tipe.
sistem_hak istimewa
Hak istimewa sistem Oracle yang ditentukan diberikan kepada satu atau lebih pengguna atau peran. Misalnya, Anda dapat memberikan hak istimewa seperti CREATE TRIGGER atau ALTER USER. Dalam kedua kasus tersebut, pemberian hak istimewa sistem memberi pengguna atau peran hak untuk menjalankan perintah dengan nama yang sesuai. Daftar lengkap hak istimewa sistem disediakan di 3.2 nanti di bagian ini.
peran
Sebuah peran ditetapkan ke pengguna atau peran lain. Selain peran pengguna, ada beberapa peran sistem bawaan yang disertakan dengan Oracle.
CONNECT, SUMBER DAYA dan DBA
Ditawarkan untuk kompatibilitas dengan versi Oracle sebelumnya.
Jangan gunakan peran ini di Oracle versi saat ini atau yang lebih baru karena peran tersebut mungkin akan dihentikan di masa mendatang.
HAPUS TALOGJROLE, EXECUTEJJA TALOGJROLE dan SELECT_CA TALOGJ.OLE
Pengguna yang ditugaskan pada peran ini dapat menghapus, mengeksekusi, dan memilih data dari tampilan kamus dan paket.
EXP_FULL_DATABASE dan IMP_FULL_DATABASE
Pengguna yang ditugaskan untuk peran ini dapat menjalankan utilitas impor dan ekspor.
AQJJSERJROLE dan AQ_ADMINISTRATORJROLE
Pengguna yang ditugaskan untuk peran ini dapat menggunakan atau mengelola fungsionalitas Oracle seperti Antrian Lanjutan.
Agen SNMP
Ditugaskan hanya untuk Oracle Enterprise Manager dan Intelligent Agent.
PEMILIH LOGO RECOVERY_CATA
Diberikan hak istimewa untuk membuat pengguna yang memiliki direktori pemulihannya sendiri.
HS_ADMIN_ROLE
Memberikan hak istimewa untuk mengakses area kamus data yang digunakan untuk mendukung layanan Oracle yang heterogen.
PADA nama_skema
Pengguna atau peran diberikan hak akses ke objek skema. Objek database meliputi: tabel, tampilan, urutan, prosedur tersimpan, fungsi yang ditentukan pengguna, paket, tampilan terwujud, tipe yang ditentukan pengguna, pustaka, tipe indeks, pernyataan yang ditentukan pengguna, atau sinonim dari semua objek ini. Jika nama skema tidak ditentukan, skema pengguna saat ini akan diambil alih. Platform Oracle juga mendukung dua kata kunci untuk kasus khusus.
DIREKTORI
Memberikan hak akses ke objek direktori, yang merupakan objek Oracle yang sesuai dengan direktori di sistem file.
Memberikan hak akses ke objek skema Java SOURCE dan RESOURCE.
LALU ((nama_penerima […] nama_objek [, …] PUBLIK) HIERARCY) OPSI]
Menentukan pengguna atau peran yang menerima hak istimewa ini. Kata kunci PUBLIC juga dapat digunakan ketika mencabut hak istimewa yang diberikan pada peran PUBLIC. Anda dapat mencantumkan beberapa penerima hak istimewa, dipisahkan dengan koma.
DENGAN OPSI HIBAH
Mengizinkan penerima hak istimewa untuk menetapkan hak istimewa tersebut kepada pengguna lain atau peran PUBLIC, namun tidak untuk peran lain.
DENGAN OPSI HIERARKI
Mengizinkan penerima hak istimewa di objek induk mendapatkan hak istimewa tersebut di semua objek anak. Hal ini juga berlaku untuk semua keturunan yang akan tercipta di masa depan. Anda dapat menggunakan opsi ini hanya ketika menugaskan hak istimewa objek SELECT.
DIIDENTIFIKASI DENGAN kata sandi
Menetapkan atau mengubah kata sandi yang harus digunakan oleh penerima hak istimewa agar dapat diberikan peran.
DENGAN PILIHAN ADMIN
Memungkinkan penerima mengontrol peran yang Anda berikan kepada mereka. Pertama, proposal ini memungkinkan penerima untuk menetapkan dan mencabut peran kepada pengguna dan peran non-global. Ini juga memungkinkan penerima untuk menghapus peran tersebut atau mengubah otorisasi yang diperlukan untuk mengaksesnya.
Penetapan hak istimewa kepada pengguna akan segera berlaku. Penetapan peran akan segera berlaku jika peran tersebut diaktifkan. Jika tidak, penetapan akan berlaku saat peran tersebut diaktifkan. Harap dicatat bahwa peran dapat diberikan kepada pengguna dan peran lainnya (termasuk PUBLIC). Contoh:
GRANT sales_reader KE salesjnanager;
Untuk memberikan hak akses tampilan, Anda harus memiliki hak istimewa tersebut di tabel dasar tampilan, dengan menentukan klausa WITH GRANT OPTION.
Jika Anda ingin memberikan hak istimewa kepada semua pengguna, cukup tetapkan hak istimewa tersebut ke peran PUBLIC.
GRANT SELECT PADA work_schedule KEPADA publik;
Namun, ada batasan tertentu dalam memberikan hak istimewa dan peran sistem.
- Hak istimewa atau peran tidak boleh muncul lebih dari satu kali dalam pernyataan GRANT.
- Suatu peran tidak dapat ditetapkan pada dirinya sendiri.
- Peran tidak dapat ditetapkan secara rekursif, yaitu, Anda tidak dapat menetapkan peran sales_reader ke peran sales_manager lalu menetapkan peran sales_manager ke peran sales_reader.
Anda dapat menetapkan beberapa hak istimewa dengan tipe yang sama dalam satu pernyataan GRANT. Namun, hak istimewa ini harus ada pada objek dengan tipe yang sama.
PEMBARUAN HIBAH (emp_id, job_id), REFERENSI (emp_id)
KE manajer_penjualan;
Selain itu, memberikan hak akses objek apa pun pada tabel memungkinkan pengguna (atau peran) untuk mengunci tabel dengan mode kunci apa pun menggunakan pernyataan Oracle LOCK TABLE.
Hampir semua fungsionalitas dan perintah yang didukung Oracle dapat ditetapkan sebagai hak istimewa dalam pernyataan GRANT (seperti yang ditunjukkan pada 3.2). Hak istimewa dapat diberikan tidak hanya ke objek database (seperti tabel dan tampilan) dan perintah sistem (seperti CREATE ANY TABLE), tetapi juga ke objek skema (seperti DIRECTORY, JAVA SOURCE, dan RESOURCE).
Opsi APAPUN, yang ditunjukkan pada 3.2, memberikan hak untuk mengeksekusi pernyataan ini pada objek dengan tipe tertentu yang dimiliki oleh pengguna mana pun dalam skema. Tanpa opsi APAPUN, pengguna hanya akan dapat menerapkan instruksi ke objek dalam skema mereka sendiri. Untuk daftar lebih lengkap tentang hak istimewa sistem Oracle, lihat 3.2.
Semua hak istimewa yang ditampilkan di 3.2 yang mengandung kata kunci APAPUN memiliki arti khusus. Secara khusus, kata kunci APAPUN memberi pengguna hak untuk melakukan operasi tertentu pada skema apa pun. Jika Anda ingin menyertakan semua skema pengguna di sini, namun mengecualikan skema SYS, atur parameter inisialisasi 07 AKSESIBILITAS KAMUS ke nilai default FALSE.
Perintah manajemen data dapat digunakan untuk mengontrol akses pengguna ke database.
Tim MENGANUGERAHKAN digunakan untuk memberikan hak istimewa kepada pengguna.
Perintah sintaksis MENGANUGERAHKAN:
Sintaks Perintah GRANT
- sistem_priv- hak istimewa sistem
- peran- peran: serangkaian wewenang yang sesuai yang dapat diberikan secara kolektif oleh administrator kepada pengguna dan peran lainnya.
- pengguna- pengguna
- PUBLIK- hak istimewa ditransfer ke semua pengguna
- DENGAN PILIHAN ADMIN-jika izin atau peran sistem diberikan, maka parameter memungkinkan pengguna untuk mentransfer izin atau peran ke pengguna atau peran lain
Contoh 1
Misalkan pengguna P1 adalah pemilik tabel Siswa dan Anda perlu mentransfer hak kepada pengguna P2 untuk merumuskan kueri terhadap tabel ini:
HIBAH PILIH AKTIF Murid KE hal2 ;
Contoh 2
Untuk mentransfer hak ke hak istimewa lainnya, sintaksnya sama. Pengguna P1, yang merupakan pemilik tabel Siswa, dapat mengizinkan pengguna P2 untuk memasukkan baris ke dalamnya:
HIBAH MASUKKAN AKTIF Murid KE hal2 ;
Contoh 3
Mentransfer hak istimewa tidak terbatas pada mentransfer satu hak istimewa ke satu pengguna dengan satu perintah MENGANUGERAHKAN. Daftar hak istimewa dan/atau pengguna yang dipisahkan koma diperbolehkan:
HIBAH PILIH, MASUKKAN PADA Murid KE hal2 ;
HIBAH PILIH, MASUKKAN PADA Murid KE P2, P3 ;
Contoh 4
Anda dapat mengizinkan pengguna mengubah nilai salah satu atau semua kolom tabel:
PEMBARUAN HIBAH AKTIF Murid KE hal2 ;
PEMBARUAN HIBAH ( Keluarga, Bola ) PADA Murid KE hal2 ;
Contoh 5
Jika Anda perlu memberi seseorang izin penuh pada objek tertentu, gunakan kata kunci SEMUA:
HIBAH SEMUANYA Murid ITU P2;
Contoh 6
Ketika hak istimewa ditransfer dengan atribut PUBLIK, yang mengacu pada pengguna, bukan hak istimewa, lalu semua pengguna menerimanya secara otomatis. Ini paling sering digunakan untuk hak istimewa PILIH untuk tabel atau tampilan tertentu yang perlu disajikan kepada setiap pengguna untuk ditinjau. Anda dapat mengizinkan setiap pengguna untuk melihat tabel Siswa dengan perintah berikut:
HIBAH PILIH AKTIF Murid KE PUBLIK;
Contoh 7.
Terkadang pembuat tabel ingin pengguna lain memiliki hak untuk mentransfer hak istimewa ke tabel tersebut. Hal ini dapat dilakukan dengan menggunakan kalimat DENGAN OPSI HIBAH. Jika pengguna P1 ingin pengguna P2 memiliki hak untuk mendelegasikan izin untuk bekerja dengan tabel Siswa kepada pengguna lain, maka ia harus mentransfer hak istimewa ke pengguna P2 untuk menjalankan perintah yang sesuai:
HIBAH PILIH, MASUKKAN PADA Murid ITU hal2 DENGAN OPSI HIBAH;