Проблема с разрешениями определения представления Redshift - PullRequest
0 голосов
/ 08 апреля 2020

Выполнение этого запроса, даже если postgres login, отображает view_definition только для представлений, созданных текущим логином.

select table_schema as schema_name, table_name as view_name, view_definition from information_schema.views where table_schema not in ('information_schema', 'pg_catalog') order by schema_name, view_name;

Есть ли способ получить представление определение для всех представлений независимо от того, кто их создал?

Если нет, я планирую просто выполнить работу в моем планировщике etl, чтобы переназначить все представления владельцу postgres.

1 Ответ

1 голос
/ 12 апреля 2020

Information_schema.views возвращает NULL для view_definition, если текущий пользователь (даже администратор) не является владельцем представления [1]. Вот как это разработано в Postgres, и поскольку Redshift основан на Postgres 8.0.2, я предполагаю, что он ведет себя аналогично.

Представление v_generate_view_ddl [2] администратора в репозитории GitHub AWS может помочь в получении всех определений представлений.

Ссылки:
[1] Postgres Документация - https://www.postgresql.org/docs/8.0/infoschema-views.html
[2] Redshift Admin View - https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_view_ddl.sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...