Khi nào các đặc quyền truy cập được liệt kê bởi \ l và khi nào thì không? Các đặc quyền truy cập được liệt kê bởi \ l có thể thay đổi sau khi cấp và thu hồi:
$ createuser -EP my_readonly
$ psql development
development=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------------------+----------+----------+-------------+-------------+-----------------------
development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
...
development=# grant usage on schema public to my_readonly;
development=# grant connect on database development to my_readonly;
development=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------------------+----------+----------+-------------+-------------+----------------------------
development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =Tc/vagrant +
| | | | | vagrant=CTc/vagrant +
| | | | | my_readonly=c/vagrant
...
development=# revoke connect on database development from my_readonly;
REVOKE
development=# revoke usage on schema public from my_readonly;
REVOKE
development=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------------------+----------+----------+-------------+-------------+-----------------------
development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =Tc/vagrant +
| | | | | vagrant=CTc/vagrant
Tại sao vậy? Nhà nước nào thay đổi? Tôi tin rằng khả năng kết nối của người dùng my_readonly không thay đổi trong toàn bộ phiên psql này (vì tôi đoán vai trò CÔNG KHAI đã kết nối đặc quyền), nhưng rõ ràng có gì đó đã thay đổi: đó là gì?
Side câu hỏi: làm thế nào tôi có thể rõ ràng yêu cầu postgres dù CÔNG trên thực tế không có quyền kết nối (có thể họ đã bị thu hồi - xem Tại sao một người dùng mới có thể chọn từ bất kỳ bảng? )?