Eu segui os passos abaixo.
- Eu instalei o PostgreSQL.
- Eu loguei como
postgres
via (sudo -i -u postgres
) - Eu criei um novo usuário
new_user
via shell scriptcreateuser --interactive
- Concedi permissão a esse usuário para criar bancos de dados.
- Eu criei banco de dados:
createdb new_db
.
Agora eu quero dar new_user
privilégios para poder executar todas as operações DML padrão em tabelas criadas por ele mesmo (comando abaixo retirado desta pergunta ), então digitei:
postgres=# ALTER DEFAULT PRIVILEGES FOR new_user IN SCHEMA
public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO new_user;
Mas deu um erro:
ERROR: syntax error at or near "new_user"
LINE 1: ALTER DEFAULT PRIVILEGES FOR new_user IN SCHEMA public GRANT...
Eu não tenho idéia porque este comando não está funcionando.
Falta uma palavra-chave. Deve ser:
A documentação:
Um dos dois (
{ ROLE | USER }
) é obrigatório.Observe que o comando específico não faz sentido para começar porque ( por documentação ):
Se você deseja conceder permissões para objetos que um usuário diferente criou, como
postgres
, use:E você provavelmente não gostaria de restringir isso a um esquema específico.
E você normalmente deseja conceder privilégios em sequências também