Sử dụng psql
các lệnh meta:
https://www.postgresql.org/docs/civerse/static/app-psql.html
Đi qua trang với Ctrl + F sẽ cho:
\ddp [ pattern ]
Liệt kê các thiết lập đặc quyền truy cập mặc định.
\dp [ pattern ]
Liệt kê các bảng, dạng xem và trình tự với các đặc quyền truy cập được liên kết của chúng.
\l[+] [ pattern ]
Liệt kê các cơ sở dữ liệu trong máy chủ và hiển thị .... quyền truy cập.
Cũng được đề cập ở trên, nhưng không tìm thấy với từ "đặc quyền" trên trang hướng dẫn:
\du+
cho các vai trò có đăng nhập và \dg+
cho các vai trò không có - sẽ có một tệp "Member of"
nơi bạn tìm thấy các vai trò được cấp cho các vai trò.
Tôi cố tình bỏ qua các đặc quyền chức năng và ngôn ngữ ở đây, được tìm thấy trong psql
hướng dẫn sử dụng hầu như không bị thao túng (và nếu bạn sử dụng các đặc quyền đó, bạn sẽ không đến đây để được tư vấn). tương tự đối với các loại, miền do người dùng xác định, v.v. - sử dụng "+" sau lệnh meta sẽ hiển thị cho bạn các đặc quyền nếu có.
Một cách cực kỳ nhỏ để kiểm tra các đặc quyền là thả người dùng trong giao dịch, ví dụ:
s=# begin; drop user x;
BEGIN
Time: 0.124 ms
ERROR: role "x" cannot be dropped because some objects depend on it
DETAIL: privileges for type "SO dT"
privileges for sequence so
privileges for schema bin
privileges for table xx
privileges for table "csTest"
privileges for table tmp_x
privileges for table s1
privileges for table test
Time: 0.211 ms
s=# rollback;
ROLLBACK
Time: 0.150 ms
Khi danh sách dài hơn N, (ít nhất là trong 9.3), cảnh báo với danh sách các đặc quyền bị thu hẹp, nhưng bạn vẫn có thể tìm thấy nó đầy đủ trong nhật ký ...
\z myTable
là hoàn hảo để đảm bảo rằng bạn đã cấp quyền truy cập thành công cho ai đó và tránh trông như một thằng ngốc khi bạn nói "bây giờ nó có hoạt động không? Nó không ??? "