Di postgres, bagaimana cara mengubah pengguna yang sudah ada menjadi superuser? Saya tidak ingin menghapus pengguna yang ada, karena berbagai alasan.
# alter user myuser ...?
Di postgres, bagaimana cara mengubah pengguna yang sudah ada menjadi superuser? Saya tidak ingin menghapus pengguna yang ada, karena berbagai alasan.
# alter user myuser ...?
Jawaban:
ALTER USER myuser WITH SUPERUSER;
Anda dapat membaca lebih lanjut di Dokumentasi
SELECT rolname, rolsuper FROM pg_roles;
ke @masterweily
\du
untuk membuat daftar semua pengguna / peran.
Untuk memperluas di atas dan membuat referensi cepat:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
Anda juga dapat menggunakan CREATEROLE
dan CREATEUSER
mengizinkan hak istimewa pengguna tanpa menjadikannya pengguna super.
$ su - postgres
$ psql
$ \du;
untuk melihat pengguna di db
pilih pengguna yang Anda inginkan menjadi pengguna super dan:
$ ALTER USER "user" with superuser;
ALTER USER "user" WITH SUPERUSER;
Jalankan Perintah ini
alter user myuser with superuser;
Jika Anda ingin melihat izin untuk pengguna menjalankan perintah berikut
\du
Mungkin kadang-kadang meningkatkan ke superuser mungkin bukan pilihan yang baik. Jadi selain dari pengguna super ada banyak opsi lain yang dapat Anda gunakan. Buka terminal Anda dan ketikkan yang berikut:
$ sudo su - postgres
[sudo] password for user: (type your password here)
$ psql
postgres@user:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.
postgres=# ALTER USER my_user WITH option
Juga daftar daftar opsi
SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE |
CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION|
NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit |
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp'
Jadi di baris perintah akan terlihat seperti
postgres=# ALTER USER my_user WITH LOGIN
ATAU gunakan kata sandi terenkripsi.
postgres=# ALTER USER my_user WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';
ATAU mencabut izin setelah waktu tertentu.
postgres=# ALTER USER my_user WITH VALID UNTIL '2019-12-29 19:09:00';
Anda dapat membuat SUPERUSER
atau mempromosikan USER
, jadi untuk kasus Anda
$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"
atau kembalikan
$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"
Untuk mencegah perintah masuk saat Anda mengatur kata sandi, masukkan spasi putih di depannya, tetapi periksa apakah sistem Anda mendukung opsi ini.
$ sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
$ sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"
ALTER USER myuser WITH NOSUPERUSER