postgres: tingkatkan pengguna menjadi superuser?

644

Di postgres, bagaimana cara mengubah pengguna yang sudah ada menjadi superuser? Saya tidak ingin menghapus pengguna yang ada, karena berbagai alasan.

# alter user myuser ...?
benang sari
sumber

Jawaban:

1262
ALTER USER myuser WITH SUPERUSER;

Anda dapat membaca lebih lanjut di Dokumentasi

Quassnoi
sumber
157
operasi yang berlawanan adalah ALTER USER myuser WITH NOSUPERUSER
d.raev
2
dan bagaimana saya bisa mendeteksi jika pengguna saya saat ini superuser?
masterweily
20
SELECT rolname, rolsuper FROM pg_roles;ke @masterweily
caulfield
6
Saya mendapatkan: ERROR: harus menjadi pengguna super untuk mengganti pengguna super
Stepan Yakovenko
15
@masterweily Anda dapat melakukannya \duuntuk membuat daftar semua pengguna / peran.
XåpplI'-I0llwlg'I -
63

Untuk memperluas di atas dan membuat referensi cepat:

  • Untuk menjadikan pengguna sebagai Pengguna Super: ALTER USER username WITH SUPERUSER;
  • Untuk membuat pengguna tidak lagi Pengguna Super: ALTER USER username WITH NOSUPERUSER;
  • Untuk mengizinkan pengguna membuat database: ALTER USER username CREATEDB;

Anda juga dapat menggunakan CREATEROLEdan CREATEUSERmengizinkan hak istimewa pengguna tanpa menjadikannya pengguna super.

Dokumentasi

ZZ9
sumber
27

$ su - postgres
$ psql
$ \du;untuk melihat pengguna di db
pilih pengguna yang Anda inginkan menjadi pengguna super dan:
$ ALTER USER "user" with superuser;

el fuser
sumber
dalam kasus khusus ini, Anda harus memasukkan nama pengguna di dalam koma, misalnyaALTER USER "user" WITH SUPERUSER;
Carlos.V
9

Jalankan Perintah ini

alter user myuser with superuser;

Jika Anda ingin melihat izin untuk pengguna menjalankan perintah berikut

\du
Chetan kapoor
sumber
8

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';
Sandip Debnath
sumber
4

Anda dapat membuat SUPERUSERatau 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';"
Vasilii Suricov
sumber
4
alter user username superuser;
Bala
sumber