Câu trả lời:
ALTER USER myuser WITH SUPERUSER;
Bạn có thể đọc thêm tại Tài liệu
SELECT rolname, rolsuper FROM pg_roles;
tới @masterweily
\du
để liệt kê tất cả người dùng / vai trò.
Để mở rộng ở trên và làm một tài liệu tham khảo nhanh:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
Bạn cũng có thể sử dụng CREATEROLE
và CREATEUSER
cho phép người dùng đặc quyền mà không biến họ thành siêu người dùng.
Chạy lệnh này
alter user myuser with superuser;
Nếu bạn muốn xem quyền cho người dùng chạy lệnh sau
\du
Có thể đôi khi nâng cấp lên một siêu người dùng có thể không phải là một lựa chọn tốt. Vì vậy, ngoài siêu người dùng, có rất nhiều tùy chọn khác mà bạn có thể sử dụng. Mở terminal của bạn và gõ như sau:
$ 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
Cũng liệt kê danh sách các tùy chọn
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'
Vì vậy, trong dòng lệnh nó sẽ trông giống như
postgres=# ALTER USER my_user WITH LOGIN
HOẶC sử dụng mật khẩu được mã hóa.
postgres=# ALTER USER my_user WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';
HOẶC thu hồi quyền sau một thời gian cụ thể.
postgres=# ALTER USER my_user WITH VALID UNTIL '2019-12-29 19:09:00';
Bạn có thể tạo SUPERUSER
hoặc quảng cáo USER
, vì vậy đối với trường hợp của bạn
$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"
hoặc rollback
$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"
Để ngăn lệnh đăng nhập khi bạn đặt mật khẩu, hãy chèn một khoảng trắng phía trước nó, nhưng kiểm tra xem hệ thống của bạn có hỗ trợ tùy chọn này không.
$ 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