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, 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 deve haver mais doações (banco de dados connect
, usage
talvez)?
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 connect
nem usage
- isso está implícito ao conceder select
? Sempre é assim?
fonte