Estou tentando atribuir SELECT
privilégios a um grupo no Redshift. Então eu criei um grupo e um usuário nesse grupo:
CREATE GROUP data_viewers;
CREATE USER <user> PASSWORD '<password>' IN GROUP data_viewers;
Agora eu gostaria de permitir que este grupo pudesse ler dados de qualquer tabela:
GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC TO GROUP data_viewers;
O comando retorna GRANT
. Agora, quando me conecto ao Redshift como meu usuário e problema recém-criados SELECT * FROM something.something;
, recebo:
permissão negada para esquema algo
Eu tentei conceder permissões para algo: GRANT SELECT ON ALL TABLES IN SCHEMA something TO GROUP data_viewers;
mas isso não mudou nada.
Como posso permitir que usuários do meu grupo acessem SELECT
dados de qualquer tabela no esquema?
Você precisa do
USAGE
privilégio (pelo menos) para o esquema também:Exemplo Postgres relacionado:
Lembre-se de que você concedeu permissões apenas para tabelas já existentes. Não se aplica a tabelas criadas posteriormente. Para cobrir esses também:
O Amazon Redshift
DEFAULT PRIVILEGES
também foi implementado.Aqui está um livro de receitas completo para o Postgres:
Esteja ciente de algumas diferenças entre o Postgres principal e o Redshift! O Redshift adere a usuários e grupos separados , enquanto o Postgres substituiu isso pelo conceito universal de papéis :
E não tenho certeza de como o Redshift lida com sequências ...
Eu tinha a mesma necessidade de um usuário somente leitura do Redshift. Depois de ler os documentos, cheguei a um conjunto de consultas:
Se você quiser realmente remover o usuário mais tarde, precisará retroceder.