Как я могу получить доступ к объектам в разделе INFORMATION_SCHEMA в базе данных в Snowflake

#snowflake-cloud-data-platform

Вопрос:

Как я могу получить доступ к объектам в разделе INFORMATION_SCHEMA в базе данных в Snowflake?

Если я попытаюсь предоставить доступ к ИСПОЛЬЗОВАНИЮ ОБЩЕДОСТУПНОЙ или любой роли в INFORMATION_SCHEMA, я получу эту ошибку: Ошибка управления доступом SQL: Недостаточно привилегий для работы со схемой «INFORMATION_SCHEMA»

Я пытаюсь получить доступ к объектам в разделе INFORMATION_SCHEMA из Power BI. Можно ли было бы это сделать?..

Ответ №1:

В информационной системе базы данных существует множество представлений и табличных функций. Для некоторых требуются повышенные разрешения, но если вам нужен только базовый доступ для роли, все, что ей нужно, находится usage в базе данных:

 use role ACCOUNTADMIN;
create or replace role NEWROLE;
grant usage on database TEST to NEWROLE;
grant role NEWROLE to user MYUSER;
use role NEWROLE;
select * from "TEST"."INFORMATION_SCHEMA"."COLUMNS";
 

Ответ №2:

INFORMATION_SCHEMA находится на уровне БД, я считаю, что пока у вас есть доступ к использованию на уровне БД, вы должны иметь доступ к INFORMATION_SCHEMA под ним, как предложил пример Грега.

Но результат INFORMATION_SCHEMA может зависеть от доступа пользователя. Например, если у пользователя нет доступа к определенным таблицам, они не будут отображаться в результатах.