PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Mengubah Pengguna menjadi Pengguna Super di PostgreSQL

  • Membuat Pengguna Baru
  • Melihat Izin Pengguna yang Ada
  • Mengubah Izin Pengguna yang Ada
    • Menetapkan SUPERUSER Izin
    • Mencabut Izin

Memodifikasi izin pengguna dalam PostgreSQL dapat berkisar dari yang agak sederhana hingga yang sangat kompleks, tergantung pada permisif permisif yang sebenarnya diperlukan. Namun, dalam kebanyakan kasus, ini adalah ALTER USER yang kuat perintah yang harus digunakan untuk melakukan segalanya mulai dari mengizinkan pengguna untuk login, membuat database, mengelola peran, dan bahkan menjadi SUPERUSER akun.

Kami akan secara singkat mengeksplorasi kekuatan ALTER USER perintah sehingga Anda dapat dengan mudah melakukan berbagai penetapan dan penghapusan izin sesuai kebutuhan.

Membuat Pengguna Baru

Sebelum kita masuk ke mengubah izin pengguna, kita harus membuat akun pengguna baru (biasanya disebut sebagai ROLE ) untuk dipusingkan.

Untuk memulai, kami akan mencantumkan semua pengguna yang ada:

=# SELECT usename FROM pg_user;
 usename
----------
 postgres
(1 row)

Secara default, postgres biasanya satu-satunya pengguna yang ada, jadi kami ingin membuat pengguna baru librarian untuk mengontrol library . kami basis data. Ini dapat dilakukan dengan menggunakan CREATE USER perintah:

=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
  usename
-----------
 postgres
 librarian
(2 rows)

Melihat Izin Pengguna yang Ada

Seringkali berguna untuk memeriksa izin yang ada yang diberikan kepada pengguna dalam sistem. Ini dapat dengan mudah dilakukan dengan \du perintah dari psql perintah:

=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian |                                                | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

Kita dapat melihat dengan jelas bahwa meskipun sekarang kita telah menambahkan librarian baru pengguna, kita harus menetapkan beberapa izin.

Mengubah Izin Pengguna yang Ada

Sekarang librarian pengguna ada, kita dapat mulai menggunakan ALTER USER untuk mengubah izin yang diberikan kepada librarian .

Format dasar ALTER USER termasuk nama pengguna (atau ROLE ) diikuti oleh serangkaian options untuk memberi tahu PostgreSQL perubahan yang diperbolehkan untuk dilakukan:

=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Opsi ini berkisar dari CREATEDB , CREATEROLE , CREATEUSER , dan bahkan SUPERUSER . Selain itu, sebagian besar opsi juga memiliki pasangan negatif, yang memberi tahu sistem bahwa Anda ingin tolak pengguna bahwa izin tertentu. Nama opsi ini sama dengan rekan penugasannya, tetapi diawali dengan NO (mis. NOCREATEDB , NOCREATEROLE , NOSUPERUSER ).

Menetapkan SUPERUSER Izin

Sekarang setelah kita memahami dasar-dasar membuat pengguna dan menggunakan ALTER USER untuk mengubah izin, kita cukup menggunakan SUPERUSER opsi untuk menugaskan librarian pengguna SUPERUSER izin:

=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE

Benar saja, jika kita menampilkan daftar izin kita sekarang, kita akan melihat librarian memiliki SUPERUSER baru izin yang kami inginkan:

=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian | Superuser                                      | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

Mencabut Izin

Jika kami melakukan kesalahan dan memberikan izin yang nantinya ingin kami cabut, cukup berikan ALTER USER yang sama perintah tetapi tambahkan NO awalan di depan opsi permisif yang akan dicabut.

Misalnya, kita dapat menghapus SUPERUSER dari librarian pengguna seperti ini:

=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian |                                                | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang Harus Diperhatikan jika Replikasi PostgreSQL Anda Lagging

  2. docker postgres dengan data awal tidak bertahan selama komit

  3. Gambaran Umum Kolom yang Dihasilkan untuk PostgreSQL

  4. Menyiapkan Lingkungan Optimal untuk PostgreSQL

  5. Pemantauan PostgreSQL Penting - Bagian 2