Danh sách những điều bạn đã hiểu sai:
-
ALTER DEFAULT PRIVILEGES
không thay đổi quyền trên bất kỳ đối tượng hiện có nào, trong trường hợp của bạn là lược đồ.Bạn cần cấp the
CREATE
đặc quyền trên giản đồ:GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
-
ALTER DEFAULT PRIVILEGES
câu lệnh bạn đã chạy sẽ chỉ ảnh hưởng đến quyền trên các bảng do người dùngpostgres
tạo trong giản đồtn_schema
, nhưng có vẻ như bạn muốntn_beta_migrator
để tạo bảng.Bạn không cần
ALTER DEFAULT PRIVILEGES
hoàn toàn, vì người dùng tạo bảng trở thành chủ sở hữu bảng và có tất cả các đặc quyền trên bảng theo mặc định. -
Bạn có thể xem các đặc quyền mặc định với
\ddp
trongpsql
. -
Các lược đồ là một phần của cơ sở dữ liệu, vì vậy bạn cần kết nối với cơ sở dữ liệu để xem các lược đồ của nó.
Nếu bạn muốn rằng các bảng được tạo bởi tn_beta_migrator
nhận các quyền nhất định theo mặc định, bạn phải xác định các đặc quyền mặc định cho người dùng đó (và không dành cho postgres
, như bạn đã làm):
ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;