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 ...?

Jawaban:


1262
ALTER USER myuser WITH SUPERUSER;

Anda dapat membaca lebih lanjut di Dokumentasi


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


27

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


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

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';

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';"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.