Solución:
Necesitas el USAGE
privilegio (al menos) para el esquema así como:
GRANT USAGE ON SCHEMA something TO GROUP data_viewers;
Ejemplo relacionado de Postgres:
- Permiso para secuencia en otro esquema
Recuerde que solo otorgó permisos a tablas ya existentes. No se aplica a tablas creadas posteriormente. Para cubrir esos también:
ALTER DEFAULT PRIVILEGES FOR USER role_that_creates_tables
IN SCHEMA public
GRANT SELECT ON TABLES TO GROUP data_viewers;
Implementación de Amazon Redshift DEFAULT PRIVILEGES
así como.
Aquí hay un libro de cocina completo para Postgres:
- ¿Cómo gestionar los PRIVILEGIOS POR DEFECTO para los USUARIOS en una BASE DE DATOS vs ESQUEMA?
Ser consciente de algunas diferencias entre la línea principal de Postgres y Redshift! Redshift se pega para separar usuarios y grupos, mientras que Postgres reemplazó eso con el concepto universal de roles:
- ¿Por qué PostgreSQL fusionó usuarios y grupos en roles?
Y no estoy seguro de cómo Redshift maneja las secuencias …
Tenía la misma necesidad de un usuario de solo lectura de Redshift. Después de leer los documentos, se me ocurrió un conjunto de consultas:
-- Create Read-Only Group
CREATE GROUP ro_group;
-- Create User
CREATE USER ro_user WITH password PASSWORD;
-- Add User to Read-Only Group
ALTER GROUP ro_group ADD USER ro_user;
-- Grant Usage permission to Read-Only Group to specific Schema
GRANT USAGE ON SCHEMA "ro_schema" TO GROUP ro_group;
-- Grant Select permission to Read-Only Group to specific Schema
GRANT SELECT ON ALL TABLES IN SCHEMA "ro_schema" TO GROUP ro_group;
-- Alter Default Privileges to maintain the permissions on new tables
ALTER DEFAULT PRIVILEGES IN SCHEMA "ro_schema" GRANT SELECT ON TABLES TO GROUP ro_group;
-- Revoke CREATE privileges from group
REVOKE CREATE ON SCHEMA "ro_schema" FROM GROUP ro_group;
Si desea eliminar al usuario más adelante, tiene que ir hacia atrás.