PostgreSQL - PRIVILEG

Setiap kali objek dibuat dalam database, pemilik ditugaskan untuk itu. Pemiliknya biasanya adalah orang yang menjalankan pernyataan pembuatan. Untuk sebagian besar jenis objek, status awalnya adalah hanya pemilik (atau pengguna super) yang dapat mengubah atau menghapus objek. Untuk mengizinkan peran atau pengguna lain untuk menggunakannya, hak istimewa atau izin harus diberikan.

Berbagai jenis hak istimewa di PostgreSQL adalah -

  • SELECT,
  • INSERT,
  • UPDATE,
  • DELETE,
  • TRUNCATE,
  • REFERENCES,
  • TRIGGER,
  • CREATE,
  • CONNECT,
  • TEMPORARY,
  • LAKUKAN, dan
  • USAGE

Bergantung pada jenis objek (tabel, fungsi, dll.,), Hak istimewa diterapkan ke objek. Untuk menetapkan hak istimewa kepada pengguna, perintah GRANT digunakan.

Sintaks untuk GRANT

Sintaks dasar untuk perintah GRANT adalah sebagai berikut -

GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
  • privilege - nilai bisa berupa: SELECT, INSERT, UPDATE, DELETE, ATURAN, ALL.

  • object- Nama objek yang akan diberikan akses. Objek yang mungkin adalah: tabel, tampilan, urutan

  • PUBLIC - Bentuk singkat yang mewakili semua pengguna.

  • KELOMPOK group - Grup yang diberi hak istimewa.

  • username- Nama pengguna yang akan diberikan hak istimewa. PUBLIK adalah bentuk singkat yang mewakili semua pengguna.

Hak istimewa dapat dicabut dengan menggunakan perintah REVOKE.

Sintaks untuk REVOKE

Sintaks dasar untuk perintah REVOKE adalah sebagai berikut -

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }
  • privilege - nilai bisa berupa: SELECT, INSERT, UPDATE, DELETE, ATURAN, ALL.

  • object- Nama objek yang akan diberikan akses. Objek yang mungkin adalah: tabel, tampilan, urutan

  • PUBLIC - Bentuk singkat yang mewakili semua pengguna.

  • KELOMPOK group - Grup yang diberi hak istimewa.

  • username- Nama pengguna yang akan diberikan hak istimewa. PUBLIK adalah bentuk singkat yang mewakili semua pengguna.

Contoh

Untuk memahami hak istimewa, pertama-tama mari kita buat USER sebagai berikut -

testdb=# CREATE USER manisha WITH PASSWORD 'password';
CREATE ROLE

Pesan CREATE ROLE menunjukkan bahwa PENGGUNA "manisha" telah dibuat.

Pertimbangkan tabel PERUSAHAAN memiliki catatan sebagai berikut -

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Selanjutnya, mari kita berikan semua hak istimewa pada tabel PERUSAHAAN kepada pengguna "manisha" sebagai berikut -

testdb=# GRANT ALL ON COMPANY TO manisha;
GRANT

Pesan GRANT menunjukkan bahwa semua hak diberikan kepada USER.

Selanjutnya, mari kita cabut hak istimewa dari PENGGUNA "manisha" sebagai berikut -

testdb=# REVOKE ALL ON COMPANY FROM manisha;
REVOKE

Pesan REVOKE menunjukkan bahwa semua hak istimewa dicabut dari PENGGUNA.

Anda bahkan dapat menghapus pengguna sebagai berikut -

testdb=# DROP USER manisha;
DROP ROLE

Pesan DROP ROLE menunjukkan PENGGUNA 'Manisha' dihapus dari database.