- Membuat Pengguna Baru
- Melihat Izin Pengguna yang Ada
- Mengubah Izin Pengguna yang Ada
- Menetapkan
SUPERUSER
Izin - Mencabut Izin
- Menetapkan
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 | {}