- Tạo người dùng mới
- Xem Quyền của Người dùng Hiện tại
- Thay đổi Quyền của Người dùng Hiện tại
- Chỉ định
SUPERUSER
Quyền - Thu hồi quyền
- Chỉ định
Việc sửa đổi quyền người dùng trong PostgreSQL có thể từ khá đơn giản đến cực kỳ phức tạp, tùy thuộc vào mức độ chi tiết cho phép thực sự được yêu cầu. Tuy nhiên, trong hầu hết các trường hợp, nó là ALTER USER
mạnh mẽ lệnh sẽ được sử dụng để làm mọi thứ, từ cho phép người dùng đăng nhập, tạo cơ sở dữ liệu, quản lý vai trò và thậm chí trở thành SUPERUSER
tài khoản.
Chúng ta sẽ khám phá ngắn gọn sức mạnh của ALTER USER
để bạn có thể dễ dàng thực hiện nhiều phép gán và xóa khi có nhu cầu.
Tạo người dùng mới
Trước khi chúng tôi đi vào thay đổi quyền người dùng, chúng tôi nên thiết lập một tài khoản người dùng mới (thường được gọi là ROLE
) để lộn xộn với.
Để bắt đầu, chúng tôi sẽ liệt kê tất cả những người dùng hiện có:
=# SELECT usename FROM pg_user;
usename
----------
postgres
(1 row)
Theo mặc định, postgres
thường là người dùng duy nhất tồn tại, vì vậy chúng tôi muốn tạo một người dùng mới là librarian
để kiểm soát library
của chúng tôi cơ sở dữ liệu. Điều này có thể được thực hiện bằng cách sử dụng CREATE USER
lệnh:
=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
usename
-----------
postgres
librarian
(2 rows)
Xem Quyền của Người dùng Hiện tại
Thường có thể hữu ích khi kiểm tra các quyền hiện có được gán cho người dùng trong hệ thống. Điều này có thể dễ dàng được thực hiện với \du
lệnh từ psql
lời nhắc:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Chúng ta có thể thấy rõ điều đó mặc dù hiện chúng ta đã thêm một librarian
mới người dùng, chúng tôi phải gán cho nó một số quyền.
Thay đổi Quyền của Người dùng Hiện tại
Bây giờ librarian
của chúng tôi người dùng tồn tại, chúng tôi có thể bắt đầu sử dụng ALTER USER
để sửa đổi các quyền được cấp cho librarian
.
Định dạng cơ bản của ALTER USER
bao gồm tên của người dùng (hoặc ROLE
) theo sau là một loạt các options
để thông báo cho PostgreSQL những thay đổi được phép thực hiện:
=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
Các tùy chọn này bao gồm từ CREATEDB
, CREATEROLE
, CREATEUSER
và thậm chí là SUPERUSER
. Ngoài ra, hầu hết các tùy chọn cũng có phần đối ứng phủ định, thông báo cho hệ thống rằng bạn muốn từ chối người dùng mà quyền cụ thể. Các tên tùy chọn này giống với đối tác gán của chúng, nhưng có tiền tố là NO
(ví dụ:NOCREATEDB
, NOCREATEROLE
, NOSUPERUSER
).
Chỉ định SUPERUSER
Quyền
Bây giờ chúng ta đã hiểu những điều cơ bản về cách tạo người dùng và sử dụng ALTER USER
để sửa đổi quyền, chúng tôi có thể khá đơn giản sử dụng SUPERUSER
tùy chọn để chỉ định librarian
của chúng tôi người dùng SUPERUSER
quyền:
=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE
Chắc chắn rồi, nếu chúng tôi hiển thị danh sách quyền của mình bây giờ, chúng tôi sẽ thấy librarian
có SUPERUSER
mới sự cho phép chúng tôi muốn:
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | Superuser | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Thu hồi Quyền
Trong trường hợp chúng tôi mắc lỗi và chỉ định một quyền mà sau này chúng tôi muốn thu hồi, chỉ cần cấp cùng một ALTER USER
nhưng thêm NO
tiền tố phía trước các tùy chọn cho phép được thu hồi.
Ví dụ:chúng tôi có thể xóa SUPERUSER
từ librarian
của chúng tôi người dùng như vậy:
=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
librarian | | {}
postgres | Superuser, Create role, Create DB, Replication | {}