A seguir, é apresentada uma lista de comandos que parecem funcionar para criar um novo usuário (login) e conceder acesso somente leitura a uma tabela especificada no PostgreSQL.
Vamos supor que esses comandos sejam executados no login com privilégios suficientes (ou seja, postgreslogin na instalação padrão).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Agora eu quero conceder selectna tabela tab_abcno banco de dados db_xyz, então aqui vai (o banco de dados db_xyzé selecionado como atual via PgAdmin ou algo parecido):
grant select on tab_abc to user_name;
A questão é: isso é suficiente ou deve haver mais doações (banco de dados connect, usagetalvez)?
Esses comandos parecem funcionar para mim, mas minha instalação padrão possui configurações de segurança padrão. Quais concessões adicionais devo adicionar se o administrador do servidor configurou uma segurança mais forte?
Parece que não preciso conceder connectnem usage- isso está implícito ao conceder select? Sempre é assim?