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.

  1. Protokol hak istimewa melacak hak istimewa sistem mana yang digunakan.
  2. Log pernyataan melacak pernyataan SQL mana yang digunakan pada semua objek.
  3. 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:

  1. Dukungan untuk berbagai skema pengkodean, mis. data yang dibuat dalam skema pengkodean pada satu mesin dapat diproses dan disajikan pada mesin lain.
  2. Mengontrol bahasa untuk menampilkan kesalahan server dan pesan informasi, angka, tanggal, format mata uang dan hari awal dalam seminggu.
  3. 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;

Tampilan