Mengontrol akses pengguna ke database Postgre SQL - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengontrol akses pengguna ke database Postgre SQL

Database baru di Postgre selalu SQL dibuat dengan set default hak istimewa dalam public skema database yang memungkinkan semua pengguna database dan peran untuk membuat objek. Hak akses ini memungkinkan pengguna basis data untuk terhubung ke basis data, misalnya, dan membuat tabel sementara saat terhubung.

Untuk mengontrol akses pengguna dengan lebih baik ke instans database yang Anda buat pada node utama klaster Aurora Postgre SQL DB istimewa default ini. public 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

Misalkan Anda menyiapkan database pada cluster Aurora Postgre SQL DB yang baru dibuat untuk instance Postgre SQL digunakan oleh beberapa peneliti, yang semuanya membutuhkan akses baca-tulis ke database.

  1. Gunakan psql (ataupgAdmin) untuk terhubung ke instans DB utama pada cluster Aurora Postgre DB Anda: : SQL

    psql --host=your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password

    Saat diminta, masukkan kata sandi Anda. Klien psql menghubungkan dan menampilkan basis data koneksi administratif default, postgres=>, sebagai perintah.

  2. Untuk mencegah pengguna basis data membuat objek dalam skema public, lakukan tindakan berikut:

    postgres=> REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE
  3. Selanjutnya, buat instans basis data baru:

    postgres=> CREATE DATABASE lab_db; CREATE DATABASE
  4. Cabut semua hak akses dari skema PUBLIC pada basis data baru ini.

    postgres=> REVOKE ALL ON DATABASE lab_db FROM public; REVOKE
  5. Buat peran untuk pengguna basis data.

    postgres=> CREATE ROLE lab_tech; CREATE ROLE
  6. Berikan pengguna basis data yang memiliki peran ini kemampuan untuk terhubung ke basis data.

    postgres=> GRANT CONNECT ON DATABASE lab_db TO lab_tech; GRANT
  7. Berikan semua hak akses pada basis data ini kepada semua pengguna dengan peran lab_tech.

    postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_db TO lab_tech; GRANT
  8. 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
  9. 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 lebih lengkap dan skenario tambahan, lihat Mengelola SQL Pengguna dan Peran Postgre.

Untuk informasi lebih lanjut tentang hak istimewa dalam SQL database Postgre, lihat GRANTperintah dalam dokumentasi Postgre. SQL