SHOW GRANTS¶
ロール、ユーザー、および共有に対して明示的に付与されている、すべてのアクセス制御権限をリストします。
権限とロールの詳細については、 アクセス制御の概要 をご参照ください。
共有の詳細については、 Secure Data Sharingの紹介 をご参照ください。
注釈
SHOW GRANTS は、他のすべての SHOW <オブジェクト> コマンドとは異なる構文を使用する特別なバリエーションです。
構文¶
SHOW GRANTS [ LIMIT <rows> ]
SHOW GRANTS ON ACCOUNT [ LIMIT <rows> ]
SHOW GRANTS ON <object_type> <object_name> [ LIMIT <rows> ]
SHOW GRANTS TO {
APPLICATION <app_name>
| APPLICATION ROLE [ <app_name>. ]<app_role_name>
| <class_name> ROLE <instance_name>!<instance_role_name>
| ROLE <role_name>
| SHARE <share_name> [ IN APPLICATION PACKAGE <app_package_name> ]
| USER <user_name>
} [ LIMIT <rows> ]
SHOW GRANTS OF { APPLICATION ROLE <app_role_name>| ROLE <role_name> } [ LIMIT <rows> ]
SHOW GRANTS OF SHARE <share_name> [ LIMIT <rows> ]
SHOW FUTURE GRANTS IN SCHEMA { <schema_name> } [ LIMIT <rows> ]
SHOW FUTURE GRANTS IN DATABASE { <database_name> } [ LIMIT <rows> ]
SHOW FUTURE GRANTS TO ROLE <role_name> [ LIMIT <rows> ]
SHOW FUTURE GRANTS TO DATABASE ROLE <database_role_name>
バリアント¶
SHOW GRANTS
構文的には
SHOW GRANTS TO USER current_user
と同等です。現在のユーザーに付与されているすべてのロールをリストします。
LIMIT rows
オプションで、返される行の最大数を制限します。実際に返される行数は、指定された制限より少ない場合があります。例えば、既存のオブジェクトの数が指定された制限より少ないなどです。
デフォルト: 値なし(出力に制限は非適用)。
SHOW GRANTS ON ...
ACCOUNT
ロールに付与されているすべてのアカウントレベル(グローバル)権限を一覧表示します。
object_type object_name
オブジェクトに対して付与されているすべての権限をリストします。
データベースロールの場合、完全修飾名
database_name.database_role_name
または相対名database_role_name
を使用できます。データベースロールに相対名を使用する場合、Snowflakeはセッション内のデータベースを使用してデータベースロールの相対名を解決します。
SHOW GRANTS TO ...
APPLICATION app_name
アプリケーションに付与されているすべての権限とロールをリストします。
APPLICATION ROLE [ app_name. ]app_role_name
アプリケーションロールに付与されたすべての権限とロールをリストします。
アプリケーションの名前、
app_name
はオプションです。指定しない場合、Snowflakeは現在のアプリケーションを使用します。アプリケーションがデータベースでない場合、このコマンドは結果を返しません。class_name ROLE instance_name!instance_role_name
インスタンスロール に付与されているすべての権限とロールをリストします。
class_name
を含むデータベースとスキーマが 使用中でない場合、または 検索パス で指定されていない場合は、クラスの完全修飾名を指定します。例:SNOWFLAKE.CORE.BUDGET
。詳細については、 インスタンスロールの例 をご参照ください。
ROLE role_name
ロールに付与されているすべての権限とロールをリストします。ロールが仮オブジェクトに対する付与を持つ場合、その付与は仮オブジェクトが作成されたセッションにのみ存在します。
SHARE share_name
共有に付与されているすべての権限をリストします。
SHARE share_name IN APPLICATION PACKAGE app_package_name
アプリケーションパッケージ内の共有に付与されたすべての権限とロールをリストします。
USER user_name
ユーザーに付与されているすべてのロールをリストします。すべてのユーザーが自動的に使用できる PUBLIC ロールはリストされていません。
SHOW GRANTS OF...
APPLICATION ROLE [ app_name. ]app_role
アプリケーションロールが付与されているすべてのユーザーとロールをリストします。
アプリケーションの名前、
app_name
はオプションです。指定しない場合、Snowflakeは現在のアプリケーションを使用します。アプリケーションがデータベースでない場合、このコマンドは結果を返しません。ROLE role_name
ロールが付与されているすべてのユーザーとロールをリストします。
SHARE share_name
共有のすべてのアカウントをリストし、共有を使用しているアカウントを示します。
SHOW FUTURE GRANTS IN ...
SCHEMA database_name.schema_name
ロールに付与されたスキーマ内の指定されたタイプの新しい(将来の)オブジェクトに対するすべての権限をリストします。
database_name.
は、スキーマが存在するデータベースを指定します。現在のデータベースのスキーマをクエリする場合は、 オプション です。DATABASE database_name
ロールに付与されたデータベース内の指定されたタイプの新しい(将来の)オブジェクトに対するすべての権限をリストします。
SHOW FUTURE GRANTS TO ROLE role_name
ロールに付与された、データベースまたはスキーマで指定された型の新しい(つまり将来の)オブジェクトに対するすべての権限をリストします。
SHOW FUTURE GRANTS TO DATABASE ROLE database_role_name
データベースロールに付与された、データベースまたはスキーマで指定された型の新しい(つまり将来の)オブジェクトに対するすべての権限をリストします。
共有データベースロールは将来の付与をサポートしません。詳細については、 GRANT DATABASE ROLE ... TO SHARE コマンドの使用上の注意をご参照ください。
使用上の注意¶
granted_by
列は、被付与者に権限付与を承認したロールを示します。承認のロールは、 付与者 として知られています。GRANT <権限> を使用してオブジェクトに対する権限をロールに付与すると、次の承認規則に従って、権限の付与者としてリストされるロールが決定されます。
アクティブロール がオブジェクトの所有者である(つまり、オブジェクトに対する OWNERSHIP 権限を持っている)場合、そのロールが付与者です。
アクティブロールが付与オプションを承認された指定の権限を保持している場合(つまり、権限が GRANT <権限> ... TO ROLE <ロール名> WITH GRANT OPTION でアクティブロールに付与された場合、ここで <ロール名> はアクティブロールの1つです)。その場合、付与オプションを承認された権限を保持するロールが付与者ロールです。複数のアクティブなロールがこの基準を満たす場合、どのロールが付与者のロールになるかは非決定論的であることに注意してください。
アクティブロールが MANAGE GRANTS グローバル権限を保持している場合、付与者ロールはオブジェクト所有者であり、 MANAGE GRANTS 権限を保持していたロールでは ありません。つまり、 MANAGE GRANTS 権限により、そのオブジェクトに対する権限を付与する目的で、ロールはオブジェクト所有者になりすますことができます。
granted_by
列が空の場合、権限はSnowflake SYSTEM ロールによって付与されました。このロールで特定の内部操作が実行されます。SYSTEM ロールによって承認された権限の付与は、顧客が変更することはできません。SHOW GRANTS ... TO SHARE IN APPLICATION PACKAGE 構文を使用する場合、
grantee_name
列には、アプリケーションパッケージの名前を指定します。granted_to
列はAPPLICATION PACKAGE SHARE
を指定します。
granted_by_role_type
列は、付与を実行した付与者ロールの型(ROLE
、DATABASE_ROLE
、またはAPPLICATION_ROLE
)を指定します。この列は、 SHOW GRANTS ON 構文を使用した場合にのみ出力に表示されます。管理アクセススキーマのオブジェクトに対して SHOW GRANTS ON <object_type> <object_name> コマンドを実行すると、
grant_options
列はFALSE
を返します。SHOWGRANTSONSCHEMA <managed_access_schema> コマンドを実行すると、
privilege
列に管理アクセススキーマを所有するロールの OWNERSHIP と MANAGE GRANTS 権限が含まれます。データベースロールと SHOW FUTURE GRANTS TO DATABASE ROLE 構文を使用すると、コマンドは共有に付与されていないデータベースロールの結果を返します。
データ共有のコンシューマーアカウントでは、共有データベースロールに将来の権限が付与されている場合、このコマンドは行を返しません。ただし、アカウントとこのコマンドのデータベースロールに対する将来の権限のサポートのタイミングによっては、このエラーメッセージが表示される可能性があります。
Invalid state of the shared database role. Please revoke the future grants to the shared database role.
コンシューマーとして、プ共有データベースロールから将来の付与を取り消すようにプロバイダーに依頼してください。
このコマンドの実行には、稼働中のウェアハウスを必要としません。
このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。
例¶
sales
データベースで付与されたすべての権限をリストします。
SHOW GRANTS ON DATABASE sales; +---------------------------------+-----------+------------+------------+------------+--------------+--------------+----------------------+--------------+ | created_on | privilege | granted_on | name | granted_to | grantee_name | grant_option | granted_by_role_type | granted_by | +---------------------------------+-----------+------------+------------+------------+--------------+--------------+----------------------+--------------+ | Thu, 07 Jul 2016 05:22:29 -0700 | OWNERSHIP | DATABASE | REALESTATE | ROLE | ACCOUNTADMIN | true | ROLE | ACCOUNTADMIN | | Thu, 07 Jul 2016 12:14:12 -0700 | USAGE | DATABASE | REALESTATE | ROLE | PUBLIC | false | ROLE | ACCOUNTADMIN | +---------------------------------+-----------+------------+------------+------------+--------------+--------------+----------------------+--------------+
analyst
ロールに付与されているすべての権限をリストします。
SHOW GRANTS TO ROLE analyst; +---------------------------------+------------------+------------+------------+------------+--------------+------------+ | created_on | privilege | granted_on | name | granted_to | grant_option | granted_by | |---------------------------------+------------------+------------+------------+------------+--------------+------------+ | Wed, 17 Dec 2014 18:19:37 -0800 | CREATE WAREHOUSE | ACCOUNT | DEMOENV | ANALYST | false | SYSADMIN | +---------------------------------+------------------+------------+------------+------------+--------------+------------+
demo
ユーザーに付与されているすべてのロールをリストします。
SHOW GRANTS TO USER demo; +---------------------------------+------+------------+-------+---------------+ | created_on | role | granted_to | name | granted_by | |---------------------------------+------+------------+-------+---------------+ | Wed, 31 Dec 1969 16:00:00 -0800 | DBA | USER | DEMO | SECURITYADMIN | +---------------------------------+------+------------+-------+---------------+
analyst
ロールが付与されているすべてのロールとユーザーをリストします。
SHOW GRANTS OF ROLE analyst; +---------------------------------+---------+------------+--------------+---------------+ | created_on | role | granted_to | grantee_name | granted_by | |---------------------------------+---------+------------+--------------+---------------| | Tue, 05 Jul 2016 16:16:34 -0700 | ANALYST | ROLE | ANALYST_US | SECURITYADMIN | | Tue, 05 Jul 2016 16:16:34 -0700 | ANALYST | ROLE | DBA | SECURITYADMIN | | Fri, 08 Jul 2016 10:21:30 -0700 | ANALYST | USER | JOESM | SECURITYADMIN | +---------------------------------+---------+------------+--------------+---------------+
sales.public
スキーマ内の将来のオブジェクトに付与されているすべての権限をリストします。
SHOW FUTURE GRANTS IN SCHEMA sales.public; +-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------+ | created_on | privilege | grant_on | name | grant_to | grantee_name | grant_option | |-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------| | 2018-12-21 09:22:26.946 -0800 | INSERT | TABLE | SALES.PUBLIC.<TABLE> | ROLE | ROLE1 | false | | 2018-12-21 09:22:26.946 -0800 | SELECT | TABLE | SALES.PUBLIC.<TABLE> | ROLE | ROLE1 | false | +-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------+
cost.budgets.my_budget!ADMIN
という名前のインスタンスロールに付与されているすべてのロール権限をリストします。
SHOW GRANTS TO SNOWFLAKE.CORE.BUDGET ROLE cost.budgets.my_budget!ADMIN;+-------------------------------+-----------+------------+----------------------------------------------------------------------------------------------------------------------------------------+ | created_on | privilege | granted_on | name | +-------------------------------+-----------+------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 2023-10-31 15:57:41.489 +0000 | USAGE | ROLE | SNOWFLAKE.CORE.BUDGET!ADMIN | | 2023-09-25 22:56:12.798 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!ACTIVATE():VARCHAR(16777216) | | 2023-09-25 22:56:13.304 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!ADD_RESOURCE(TARGET_REF VARCHAR):VARCHAR(16777216) | | 2023-09-25 22:56:12.863 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_ACTIVATION_DATE():DATE | | 2023-09-25 22:56:12.412 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_BUDGET_NAME():VARCHAR(16777216) | | 2023-09-25 22:56:11.510 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_CONFIG():TABLE: () | | 2023-09-25 22:56:13.432 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_LINKED_RESOURCES():TABLE: () | | 2023-09-25 22:56:11.582 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_MEASUREMENT_TABLE():TABLE: () | | 2023-09-25 22:56:12.153 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_NOTIFICATION_EMAIL():VARCHAR(16777216) | | 2023-09-25 22:56:12.016 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_NOTIFICATION_INTEGRATION_NAME():VARCHAR(16777216) | | 2023-09-25 22:56:12.286 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_NOTIFICATION_MUTE_FLAG():VARCHAR(16777216) | | 2023-09-25 22:56:13.068 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_SERVICE_TYPE_USAGE(SERVICE_TYPE VARCHAR):TABLE: () | | 2023-09-25 22:56:13.245 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_SERVICE_TYPE_USAGE(SERVICE_TYPE VARCHAR, TIME_DEPART VARCHAR, USER_TIMEZONE VARCHAR, TIME_LOWER_BOUND VARCHA | | 2023-09-25 22:56:12.595 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_SPENDING_HISTORY():TABLE: () | | 2023-09-25 22:56:12.732 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_SPENDING_HISTORY(TIME_LOWER_BOUND VARCHAR, TIME_UPPER_BOUND VARCHAR):TABLE: () | | 2023-09-25 22:56:11.716 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!GET_SPENDING_LIMIT():NUMBER(38,0) | | 2023-09-25 22:56:13.367 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!REMOVE_RESOURCE(TARGET_REF VARCHAR):VARCHAR(16777216) | | 2023-09-25 22:56:11.856 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!SET_EMAIL_NOTIFICATIONS(NOTIFICATION_CHANNEL_NAME VARCHAR, EMAIL VARCHAR):VARCHAR(16777216) | | 2023-09-25 22:56:12.349 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!SET_NOTIFICATION_MUTE_FLAG(USER_MUTE_FLAG BOOLEAN):VARCHAR(16777216) | | 2023-09-25 22:56:11.780 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!SET_SPENDING_LIMIT(SPENDING_LIMIT FLOAT):VARCHAR(16777216) | | 2023-09-25 22:56:12.475 +0000 | USAGE | PROCEDURE | SNOWFLAKE.CORE.BUDGET!SET_TASK_SCHEDULE(NEW_SCHEDULE VARCHAR):VARCHAR(16777216) | +-------------------------------+-----------+------------+----------------------------------------------------------------------------------------------------------------------------------------+