我按照以下步骤操作。
- 我安装了 PostgreSQL。
postgres
我通过 (sudo -i -u postgres
)登录new_user
我通过 shell 脚本创建了新用户createuser --interactive
- 我授予该用户创建数据库的权限。
- 我创建了数据库:
createdb new_db
.
现在我想赋予new_user
权限能够对他自己创建的表执行所有默认的 DML 操作(下面的命令来自这个问题),所以我输入了:
postgres=# ALTER DEFAULT PRIVILEGES FOR new_user IN SCHEMA
public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO new_user;
但出现错误:
ERROR: syntax error at or near "new_user"
LINE 1: ALTER DEFAULT PRIVILEGES FOR new_user IN SCHEMA public GRANT...
我不知道为什么这个命令不起作用。
缺少一个关键词。肯定是:
文档:
(
{ ROLE | USER }
) 之一是必需的。请注意,特定命令一开始没有任何意义,因为(根据文档):
如果您希望授予其他用户创建的对象的权限,例如
postgres
,请使用:而且您可能不想将其限制为特定模式。
而且您通常还希望授予序列权限