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.