Tôi gặp phải vấn đề về vai trò rất khó chịu với PostgreSQL. Nó chỉ đơn giản là không hành xử như nó phải theo documentation.Thừa kế vai trò PostgreSQL không hoạt động?
Tôi muốn có vai trò chính và cấp quyền cho người dùng mới được tạo. Những người dùng này sẽ kế thừa các quyền mà không cần phát hành theo cách thủ công SET ROLE
.
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
Bây giờ sau khi tôi kết nối như testuser
, tôi nhận được như sau:
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
Theo các tài liệu liên kết ở trên (vì sự lựa chọn kế thừa), các SET ROLE
không nên được yêu cầu.
Tôi thiếu gì ở đây?