用户无法在 PostgresSQL 数据库中创建架构

Ser*_*gei 5 postgresql permissions alter-database

我正在尝试设置一个“部署”用户,除了选择、更新、插入和删除记录之外,它还可以在现有数据库上创建和更改表。

这是我到目前为止所尝试过的:

-- Create deployment user
CREATE ROLE deploy_user WITH LOGIN PASSWORD 'deploy_user';

-- Grant connect and create
GRANT CONNECT, CREATE ON DATABASE my_database TO deploy_user;

-- Grant create schema privilege
ALTER ROLE deploy_user CREATEDB;

-- Change db owner to deployment user
ALTER DATABASE my_database OWNER TO deploy_user;

-- Grant CRUD operations
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT INSERT, UPDATE, DELETE ON TABLES TO deploy_user;
Run Code Online (Sandbox Code Playgroud)

上述补助金均无效。我最终得到的是一个可以登录的用户,但仅此而已。我无法在任何表上选择、插入、更新、删除。我也无法更改架构。

有人可以帮忙吗?

Tom*_*maž 2

您至少需要在架构中提供 CREATE 权限:

GRANT CREATE ON SCHEMA public TO deploy_user;
Run Code Online (Sandbox Code Playgroud)

或全部:

GRANT ALL PRIVILEGES ON SCHEMA public TO deploy_user;
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.postgresql.org/docs/9.4/static/sql-grant.html上的手册