Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengontrol akses pengguna ke basis data PostgreSQL
Basis data baru di PostgreSQL selalu dibuat dengan serangkaian hak akses default dalam skema public
basis data yang memungkinkan semua pengguna dan peran basis data untuk membuat objek. Hak akses ini memungkinkan pengguna basis data untuk terhubung ke basis data, misalnya, dan membuat tabel sementara saat terhubung.
Agar dapat mengontrol dengan lebih baik akses pengguna ke instans basis data yang Anda buat di simpul primer klaster DB Aurora PostgreSQL , sebaiknya Anda mencabut hak akses public
default. Setelah melakukannya, Anda kemudian memberikan hak akses khusus untuk pengguna basis data secara lebih rinci, seperti yang diperlihatkan dalam prosedur berikut ini.
Untuk menyiapkan peran dan hak akses untuk instans basis data baru
Misalnya, Anda sedang menyiapkan basis data pada klaster DB Aurora PostgreSQL yang baru dibuat untuk digunakan oleh beberapa peneliti, yang semuanya membutuhkan akses baca-tulis ke basis data.
-
Gunakan
psql
(atau pgAdmin) untuk menghubungkan ke instans DB primer di klaster DB Aurora PostgreSQL:psql --host=
your-cluster-instance-1.666666666666
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordSaat diminta, masukkan kata sandi Anda. Klien
psql
menghubungkan dan menampilkan basis data koneksi administratif default,postgres=>
, sebagai perintah. -
Untuk mencegah pengguna basis data membuat objek dalam skema
public
, lakukan tindakan berikut:postgres=>
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE
-
Selanjutnya, buat instans basis data baru:
postgres=>
CREATE DATABASE
lab_db
;CREATE DATABASE
-
Cabut semua hak akses dari skema
PUBLIC
pada basis data baru ini.postgres=>
REVOKE ALL ON DATABASE
lab_db
FROM public;REVOKE
-
Buat peran untuk pengguna basis data.
postgres=>
CREATE ROLE
lab_tech
;CREATE ROLE
-
Berikan pengguna basis data yang memiliki peran ini kemampuan untuk terhubung ke basis data.
postgres=>
GRANT CONNECT ON DATABASE
lab_db
TOlab_tech
;GRANT
-
Berikan semua hak akses pada basis data ini kepada semua pengguna dengan peran
lab_tech
.postgres=>
GRANT ALL PRIVILEGES ON DATABASE
lab_db
TOlab_tech
;GRANT
-
Buat pengguna basis data, sebagai berikut:
postgres=>
CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me';
CREATE ROLE
postgres=>
CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me';
CREATE ROLE
-
Beri hak akses terkait peran lab_tech kepada dua pengguna ini:
postgres=>
GRANT lab_tech TO lab_user1;
GRANT ROLE
postgres=>
GRANT lab_tech TO lab_user2;
GRANT ROLE
Pada titik ini, lab_user1
dan lab_user2
dapat terhubung ke basis data lab_db
. Contoh ini tidak mengikuti praktik terbaik untuk penggunaan perusahaan, yang mungkin termasuk membuat beberapa instans basis data, skema yang berbeda, dan pemberian izin terbatas. Untuk informasi yang lebih lengkap dan skenario tambahan lainnya, lihat Mengelola Pengguna dan Peran PostgreSQL
Untuk informasi selengkapnya tentang hak akses di PostgreSQL, lihat perintah GRANT