Berikut ini adalah daftar perintah yang tampaknya berfungsi untuk membuat pengguna baru (login) dan memberikan akses hanya baca untuk satu tabel yang ditentukan pada PostgreSQL.
Mari kita asumsikan bahwa perintah-perintah ini dijalankan pada saat login dengan hak istimewa yang cukup (mis. postgres
Login pada instalasi default).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Sekarang saya ingin memberikan select
pada tabel tab_abc
di database db_xyz
, jadi begini (database db_xyz
dipilih sebagai arus melalui PgAdmin atau sesuatu seperti itu):
grant select on tab_abc to user_name;
Pertanyaannya adalah: apakah ini cukup atau harus ada lebih banyak hibah (database connect
, usage
mungkin)?
Perintah-perintah ini sepertinya bekerja untuk saya, tetapi instalasi default saya memiliki pengaturan keamanan default. Apa hibah tambahan yang harus saya tambahkan jika admin server mengkonfigurasi keamanan yang lebih kuat?
Tampaknya saya tidak perlu memberikan connect
atau tidak usage
- apakah itu implisit saat memberikan select
? Apakah selalu demikian?