Câu trả lời:
Từ khóa PUBLIC chỉ ra rằng các đặc quyền sẽ được cấp cho tất cả các vai trò, bao gồm cả các vai trò có thể được tạo sau này. PUBLIC có thể được coi là một nhóm được xác định ngầm luôn bao gồm tất cả các vai trò. Bất kỳ vai trò cụ thể nào cũng sẽ có tổng số đặc quyền được cấp trực tiếp cho nó, đặc quyền được cấp cho bất kỳ vai trò nào hiện tại là thành viên và đặc quyền được cấp cho PUBLIC.
Trong khi điều này là sự thật thì nó không phải là bức tranh đầy đủ. Công chúng cũng hoạt động như một vai trò ngầm định mà các vai trò khác thuộc về và có quyền riêng không phải luôn luôn được phản ánh và báo cáo được thừa kế.
Theo mặc định, nó cho phép tạo ra trên lược đồ công cộng. khi bạn không xóa tất cả các bước chính xác khác để tạo kết quả người dùng chỉ đọc, người dùng đó cũng có thể tạo các đối tượng mới trong lược đồ công cộng và sau đó do quyền sở hữu đưa dữ liệu vào đó. Để ngăn chặn điều này
REVOKE ALL ON SCHEMA public FROM PUBLIC;
Tương tự, nó cũng cho phép ở mức cơ sở dữ liệu, để loại bỏ việc sử dụng
REVOKE ALL ON DATABASE all_database FROM PUBLIC;
Bài viết hay ở đây: https://wiki.postgresql.org/images/d/d1/Managing_rights_in_postgresql.pdf