Conceder privilégios para um banco de dados específico no PostgreSQL

Estou mudando do MySQL para o PostgreSQL e atingi um muro com privilégios de usuário. Estou acostumado a atribuir a um usuário todos os privilégios para todas as tabelas de um banco de dados com o seguinte comando:

# MySQL
grant all privileges on mydatabase.* to 'myuser'@'localhost' identified by 'mypassword';

Parece-me que a solução PostgreSQL 9.x envolve a atribuição de privilégios a um "esquema", mas o esforço necessário para descobrir exatamente o que SQL emitir está sendo excessivo. Sei que mais algumas horas de pesquisa renderão uma resposta, mas acho que todos que mudam do MySQL para o PostgreSQL podem se beneficiar de ter pelo menos uma página na web que forneça uma receita simples e completa. Este é o único comando que eu já precisei emitir para os usuários. Prefiro não ter que emitir um comando para cada nova tabela.

Não sei quais cenários devem ser tratados de maneira diferente no PostgreSQL; portanto, listarei alguns dos cenários que normalmente tive que lidar no passado. Suponha que pretendemos apenas modificar privilégios em um único banco de dados que já foi criado.

(1a) Nem todas as tabelas foram criadas ainda ou (1b) as tabelas já foram criadas.

(2a) O usuário ainda não foi criado ou (2b) o usuário já foi criado.

(3a) Os privilégios ainda não foram atribuídos ao usuário ou (3b) os privilégios foram atribuídos anteriormente ao usuário.

(4a) O usuário precisa apenas inserir, atualizar, selecionar e excluir linhas ou (4b) também precisa criar e excluir tabelas.

Vi respostas que concedem todos os privilégios a todos os bancos de dados, mas não é isso que eu quero aqui. Por favor, estou procurando uma receita simples, embora não me importe com uma explicação também.

Não quero conceder direitos a todos os usuários e todos os bancos de dados, como parece ser o atalho convencional, porque essa abordagem compromete todos os bancos de dados quando qualquer usuário é comprometido. Eu hospedo vários clientes de banco de dados e atribuo a cada cliente um login diferente.

Parece que eu também preciso doUSAGE privilégio de obter os valores crescentes de umserial coluna, mas eu tenho que concedê-lo em algum tipo de sequência. Meu problema ficou mais complexo.

questionAnswers(4)

yourAnswerToTheQuestion