ใน postgres ฉันจะเปลี่ยนผู้ใช้ปัจจุบันเป็น superuser ได้อย่างไร ฉันไม่ต้องการลบผู้ใช้ปัจจุบันด้วยเหตุผลหลายประการ
# alter user myuser ...?
ใน postgres ฉันจะเปลี่ยนผู้ใช้ปัจจุบันเป็น superuser ได้อย่างไร ฉันไม่ต้องการลบผู้ใช้ปัจจุบันด้วยเหตุผลหลายประการ
# alter user myuser ...?
คำตอบ:
ALTER USER myuser WITH SUPERUSER;
คุณสามารถอ่านเพิ่มเติมได้ที่เอกสาร
SELECT rolname, rolsuper FROM pg_roles;
ถึง @masterweily
\du
รายการผู้ใช้ / บทบาททั้งหมด
หากต้องการขยายด้านบนและทำการอ้างอิงอย่างรวดเร็ว:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
นอกจากนี้คุณยังสามารถใช้CREATEROLE
และCREATEUSER
เพื่อให้สิทธิ์ผู้ใช้โดยไม่ต้องทำให้พวกเขา superuser
$ su - postgres
$ psql
$ \du;
เพื่อดูผู้ใช้บน db
เลือกผู้ใช้ที่คุณต้องการเป็น superuser และ:
$ ALTER USER "user" with superuser;
ALTER USER "user" WITH SUPERUSER;
เรียกใช้คำสั่งนี้
alter user myuser with superuser;
หากคุณต้องการดูการอนุญาตให้ผู้ใช้เรียกใช้คำสั่งต่อไป
\du
บางครั้งอาจเป็นการอัพเกรดเป็น superuser อาจไม่ใช่ตัวเลือกที่ดี นอกจากผู้ใช้ระดับสูงแล้วยังมีตัวเลือกอื่น ๆ อีกมากมายที่คุณสามารถใช้ได้ เปิดเทอร์มินัลของคุณและพิมพ์ต่อไปนี้:
$ 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
นอกจากนี้ยังแสดงรายการตัวเลือก
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'
ดังนั้นในบรรทัดคำสั่งมันจะดูเหมือน
postgres=# ALTER USER my_user WITH LOGIN
หรือใช้รหัสผ่านที่เข้ารหัส
postgres=# ALTER USER my_user WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';
หรือเพิกถอนสิทธิ์หลังจากเวลาที่กำหนด
postgres=# ALTER USER my_user WITH VALID UNTIL '2019-12-29 19:09:00';
คุณสามารถสร้างSUPERUSER
หรือส่งเสริมUSER
ดังนั้นสำหรับกรณีของคุณ
$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"
หรือย้อนกลับ
$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"
หากต้องการป้องกันคำสั่งจากการบันทึกเมื่อคุณตั้งรหัสผ่านให้แทรกช่องว่างด้านหน้าไว้ แต่ตรวจสอบว่าระบบของคุณรองรับตัวเลือกนี้
$ 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 username superuser;
ALTER USER myuser WITH NOSUPERUSER