Azure Database for PostgreSQL弹性服务器public架构权限拒绝问题排查
Azure PostgreSQL弹性服务器权限问题解决
问题原因
执行CREATE TABLE tblByDev1(col1 text);时提示permission denied for schema public,核心原因是Test_db_user角色缺少public架构的USAGE权限——在PostgreSQL中,要在架构内创建对象,需要同时拥有该架构的CREATE和USAGE权限,你之前仅授予了CREATE权限,缺少必要的USAGE权限导致创建表失败。
解决步骤
- 使用超级管理员账号(postgresql_admin)登录testdb数据库,执行以下命令授予USAGE权限:
GRANT USAGE ON SCHEMA public TO Test_db_user;
- (可选但推荐)为了让Test_db_user能自动获取后续在public架构中创建的新表的权限,设置默认权限:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO Test_db_user;
完成以上操作后,重新用dev1用户登录,即可成功执行创建表的命令。
内容的提问来源于stack exchange,提问作者Ravi Khambhati
相关产品推荐
相关产品推荐

