A seguir está uma lista de comandos que parecem funcionar para criar um novo usuário (login) e conceder acesso somente leitura para uma tabela especificada no PostgreSQL.
Vamos supor que esses comandos sejam executados no login com privilégios suficientes (ou seja postgres
, login na instalação padrão).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Agora eu quero conceder select
na tabela tab_abc
no 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 deveria haver mais concessões (banco de dados connect
, usage
talvez)?
Esses comandos parecem funcionar para mim, mas minha instalação padrão tem 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 connect
nem usage
- isso está implícito ao conceder select
? É sempre assim?