PostgreSQL Berikan Semua Hak Istimewa pada Skema kepada Pengguna

Postgresql Berikan Semua Hak Istimewa Pada Skema Kepada Pengguna



Basis data sangat penting, dan merupakan tugas administrator untuk mengontrol peran berbeda apa yang dapat dilakukan pengguna dalam basis data tertentu. Sebagai bagian dari otorisasi, administrator dapat menentukan entitas pengguna di dalam database dan memberikan atau mencabut berbagai hak istimewa untuk peran tersebut.

Dengan begitu, Anda mendapatkan kendali atas siapa yang dapat mengakses database dan hak istimewa apa yang mereka miliki jika mereka dapat mengakses database. Misalnya, Anda dapat mencabut modifikasi database atau memberikan semua hak istimewa pada skema kepada pengguna atau beberapa pengguna dalam tabel tertentu. Panduan ini merinci cara menggunakan PostgreSQL untuk memberi pengguna semua hak istimewa pada skema kepada pengguna.







Cara Memberikan Hak Istimewa kepada Pengguna di PostgreSQL

Saat Anda membuat peran baru, mereka mendapatkan beberapa hak istimewa secara default. Namun, sebagian besar hak istimewa mengharuskan administrator untuk memberikannya kepada pengguna yang berbeda untuk mengatur akses dan kontrol skema. Anda dapat memberikan semua hak istimewa sekaligus atau secara terpisah.



Untuk tutorial ini, mari buat yang baru peran bernama linuxhint1 .



$ sudo -iu postgres
# buat peran kata sandi login linuxhint1 'linuxhint';


Perhatikan bahwa kita login sebagai postgres, peran default dibuat setelah Anda menginstal PostgreSQL.






Dengan peran (pengguna) yang dibuat, kita dapat membuat daftar peran yang tersedia menggunakan perintah berikut:

# \ dari


Peran yang tersedia akan ditampilkan dalam format tabel.




Postgres adalah peran default dan memiliki sebagian besar hak istimewa yang telah diberikan. Namun, peran baru linuxhint1, tidak memiliki hak istimewa sampai kami memberikannya.

1. Memberikan Keistimewaan Khusus kepada Pengguna

Peran yang dibuat tidak dapat mengubah skema kecuali Anda mengizinkannya. Mari kita verifikasi ini dengan terlebih dahulu membuat tabel sebagai peran default, postgres.

# membuat nama tabel ( m_id int selalu dihasilkan sebagai identitas, fname vachar ( 100 ) bukan null, lname varchar ( 100 ) bukan nol, usia int ) ;



Anda dapat membuat daftar relasi yang tersedia, seperti yang ditunjukkan di bawah ini:


Selanjutnya, buka shell baru dan login ke PostgreSQL menggunakan role lainnya, linuxhint1, yang telah kita buat sebelumnya menggunakan perintah berikut:

$ psql -DI linuxhint1 -d postgres



Itu -d menentukan bahwa perannya adalah menggunakan database Postgres.

Coba baca isi tabel yang kita buat dengan menggunakan PILIH memerintah.

# PILIH * DARI nama;


Ia mengembalikan a izin ditolak kesalahan yang menghalangi pengguna mengakses tabel.


Dalam kasus seperti itu, kita perlu memberikan hak peran untuk memilih/melihat data dari tabel yang diberikan menggunakan sintaks berikut:

# GRANT privilege_name ON table_name TO role_name;


Untuk memberikan hak istimewa, gunakan sesi Postgres.


Setelah diberikan, coba jalankan kembali perintah sebelumnya.


Itu dia. Anda berhasil memberikan hak pilih kepada pengguna tertentu.

2. Memberikan Semua Hak Istimewa pada Skema kepada Pengguna

Sejauh ini, kami hanya berhasil memberikan satu hak istimewa pada skema kepada pengguna. Yah, itu tidak cukup. Pengguna tidak dapat mengubah skema kecuali jika Anda memberinya semua hak istimewa, seperti menyisipkan dan memperbarui.

Ada berbagai cara untuk mencapai ini. Pertama, mari berikan pengguna semua hak istimewa ke tabel yang diberikan menggunakan sintaks berikut:

# GRANT ALL ON table_name TO role_name;



Pengguna dapat berinteraksi dengan dan memodifikasi tabel tertentu. Namun, mereka tidak dapat bekerja dengan tabel lain dalam skema.

Ke berikan semua hak istimewa pada semua tabel dalam skema tertentu , gunakan sintaks berikut:

# GRANT ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;



Terakhir, Anda bisa berikan hak khusus, seperti menyisipkan atau memilih semua tabel pada skema ke peran tertentu .

# GRANT privilege_name PADA SEMUA TABEL DALAM SKEMA schema_name TO role_name;



Peran dapat memilih data di semua tabel dalam skema yang ditentukan. Begitulah cara Anda menentukan hak istimewa apa yang akan diberikan pada skema kepada pengguna yang berbeda.

Kesimpulan

PostgreSQL adalah DBMS yang kuat. Ini memiliki fitur yang berbeda, termasuk memungkinkan administrator untuk memberikan berbagai hak istimewa kepada pengguna. Memberikan semua hak istimewa pada skema kepada pengguna berarti mengizinkan pengguna untuk memodifikasi dan berinteraksi dengan semua tabel dalam skema yang ditentukan. Kami telah melihat cara menerapkannya dan cara lain untuk memberikan hak istimewa pada skema ke peran menggunakan pernyataan GRANT di PostgreSQL.