Snowflake использует доступ на основе ролей, поэтому пользователям не предоставляется доступ непосредственно к базе данных, но их роль есть.
Чтобы узнать, какие роли имеют доступ к каким базам данных, вы можете получить эту информацию из базы данных Snowflake, к которой вам следует иметь доступ, если у вас есть роль accountadmin
:
select
roles.privilege,
roles.name as database_name,
roles.grantee_name as role_name
from snowflake.account_usage.grants_to_roles roles
where roles.granted_on = 'DATABASE'
;
Обратите внимание, что Я думаю, что эта таблица показывает только те привилегии, которые были предоставлены непосредственно для роли, и не показывает привилегии, которые достигаются через их иерархические отношения. Вы можете написать более сложный запрос, чтобы выяснить привилегии, предоставленные через иерархию и пользователю, используя рекурсивный запрос на grants_to_roles
вместе с таблицами grants_to_users
. Я думаю ¯ \ _ (ツ) _ / ¯