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>
| SERVICE ROLE <service_name>!<service_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>
| SERVICE ROLE <service_name>!<service_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は現在のアプリケーションを使用します。アプリケーションがデータベースでない場合、このコマンドは結果を返しません。SERVICE ROLE service_name!service_role_nameサービスロールに USAGE 権限が付与されているサービスエンドポイントをリストします。
class_name ROLE instance_name!instance_role_nameインスタンスロール に付与されているすべての権限とロールをリストします。
class_nameを含むデータベースとスキーマが 使用中でない場合、または 検索パス で指定されていない場合は、クラスの完全修飾名を指定します。例:SNOWFLAKE.CORE.BUDGET。詳細については、 インスタンスロールの例 をご参照ください。
ROLE role_nameロールに付与されているすべての権限とロールをリストします。ロールが仮オブジェクトに対する付与を持つ場合、その付与は仮オブジェクトが作成されたセッションにのみ存在します。
SHOW GRANTS TO ROLE PUBLIC は、パブリックロールに付与された以下の 取り消し不可 のデータベースロールを公開します。
ALERT_VIEWER
CLASSIFICATION_VIEWER
CORE_VIEWER
DATA_PRIVACY_VIEWER
ML_USER
MONITORING_VIEWER
NOTIFICATION_VIEWER
SNOWFLAKE_TEMPLATE_SNOWGIT_VIEWER
SPCS_REGISTRY_VIEWER
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は現在のアプリケーションを使用します。アプリケーションがデータベースでない場合、このコマンドは結果を返しません。SERVICE ROLE service_name!service_role_nameサービスロールが付与されているすべてのユーザーとロールをリストします。
ROLE role_nameロールが付与されているすべてのユーザーとロールをリストします。
SHARE share_name共有を消費しているすべてのアカウントをリストします。まだシェアを消費していないアカウントは除外されます。共有に追加されたすべてのアカウントを表示するには、 SNOWFLAKE.ACCOUNT_USAGE.SHARES ビューをクエリします。
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 <権限> ... TO ROLE を使用してオブジェクトに対する権限をロールに付与すると、次の承認規則に従って、権限の付与者としてリストされるロールが決定されます。
アクティブロール がオブジェクトの所有者である(つまり、オブジェクトに対する 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 構文を使用した場合にのみ出力に表示されます。データ共有コンシューマーは、テーブルの SELECT のような、 共有に与えられた オブジェクトの権限のみを表示することができます。グラントの設定方法によっては、コンシューマーが実行する SHOW GRANTS コマンドの出力が、以下の列の共有オブジェクトに対して空の値を示すことがあります。
granted_to、grantee_name、granted_by_role_type、granted_by。例:アカウント・ロールが共有オブジェクトを所有している場合、コンシューマーはオブジェクトを所有するロールにアクセス(解決)できないため、共有オブジェクトの OWNERSHIP 権限を表示できません(アカウント・ロールは共有されません)。
データベース・ロールが共有オブジェクトを所有し、プロバイダーがデータベース・ロールを共有している場合、コンシューマーは共有データベース・ロールを解決できるため、共有オブジェクトの OWNERSHIP 権限を表示することができます。
管理アクセススキーマのオブジェクトに対して 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.コンシューマーとして、プ共有データベースロールから将来の付与を取り消すようにプロバイダーに依頼してください。
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。
MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。
このコマンドの出力を後処理するには、 パイプ演算子 (
->>)または RESULT_SCAN 関数。どちらのコンストラクトも、出力を クエリできる結果セットとして扱います。For example, you can use the pipe operator or RESULT_SCAN function to select specific columns from the SHOW command output or filter the rows.
When you refer to the output columns, use double-quoted identifiers for the column names. For example, to select the output column
type, specifySELECT "type".You must use double-quoted identifiers because the output column names for SHOW commands are in lowercase. The double quotes ensure that the column names in the SELECT list or WHERE clause match the column names in the SHOW command output that was scanned.
例¶
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 | grantee_name | grant_option | granted_by |
|---------------------------------+------------------+------------+------------+------------+--------------+--------------+------------+
| Wed, 17 Dec 2014 18:19:37 -0800 | CREATE WAREHOUSE | ACCOUNT | DEMOENV | ROLE | ANALYST | false | SYSADMIN |
+---------------------------------+------------------+------------+------------+------------+--------------+--------------+------------+
public ロールに付与されているすべての権限をリストします。
SHOW GRANTS TO ROLE public;
(パブリックロールに付与された取り消し不可のデータベースロールのみを表示するため、例をトリミングしました)
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| created_on | privilege | granted_on | name | granted_to | grantee_name | grant_option | granted_by |
|---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------|
| ... | | | | | | | |
|---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | ALERT_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | CLASSIFICATION_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | CORE_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | DATA_PRIVACY_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+-------- -----+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | ML_USER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | MONITORING_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | NOTIFICATION_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | SNOWFLAKE_TEMPLATE_SNOWGIT_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| 2023-08-18 13:33:01.156 -0700 | USAGE | DATABASE_ROLE | SPCS_REGISTRY_VIEWER | ROLE | PUBLIC | false | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
| ... | | | | | | | |
+---------------------------------+-----------+---------------+-----------------------------------+------------+--------------+--------------+------------+
user1 ユーザーに付与されているすべてのロールをリストします。
SHOW GRANTS TO USER user1;
+-------------------------------+-----------+------------+---------------------------+-----------+------------+--------------+--------------+---------------+
| created_on | privilege | granted_on | name | role | granted_to | grantee_name | grant_option | granted_by |
|-------------------------------+-----------+------------+---------------------------+-----------+------------+--------------+------------------------------|
| 2025-05-07 09:08:43.773 -0800 | USAGE | DATABASE | test_db | null | USER | user1 | false | SECURITYADMIN |
| 2025-05-07 09:08:55.253 -0800 | USAGE | SCHEMA | test_db.test_sch | null | USER | user1 | false | SECURITYADMIN |
| 2025-05-07 09:08:55.253 -0800 | SELECT | TABLE | test_db.test_sch.test_tbl | null | USER | user1 | false | SECURITYADMIN |
| 2025-05-07 09:08:34.838 -0800 | USAGE | WAREHOUSE | test_wh | null | USER | user1 | false | 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) |
+-------------------------------+-----------+------------+----------------------------------------------------------------------------------------------------------------------------------------+