SHOW GRANTS¶
ロール、ユーザー、および共有に対して明示的に付与されている、すべてのアクセス制御権限をリストします。
権限とロールの詳細については、 アクセス制御の概要 をご参照ください。
共有の詳細については、 Secure Data Sharingの紹介 をご参照ください。
注釈
SHOW GRANTS は、他のすべての SHOW <オブジェクト> コマンドとは異なる構文を使用する特別なバリエーションです。
構文¶
SHOW GRANTS
SHOW GRANTS ON ACCOUNT
SHOW GRANTS ON <object_type> <object_name>
SHOW GRANTS TO { ROLE <role_name> | USER <user_name> | SHARE <share_name> }
SHOW GRANTS OF ROLE <role_name>
SHOW GRANTS OF SHARE <share_name>
SHOW FUTURE GRANTS IN SCHEMA { <schema_name> }
SHOW FUTURE GRANTS IN DATABASE { <database_name> }
SHOW FUTURE GRANTS TO ROLE <role_name>
バリアント¶
SHOW GRANTS
構文的には
SHOW GRANTS TO USER current_user
と同等です。現在のユーザーに付与されているすべてのロールをリストします。
SHOW GRANTS ON ...
ACCOUNT
ロールに付与されているすべてのアカウントレベル(グローバル)権限を一覧表示します。
object_type object_name
オブジェクトに対して付与されているすべての権限をリストします。
SHOW GRANTS TO ...
ROLE role_name
ロールに付与されているすべての権限とロールをリストします。
USER user_name
ユーザーに付与されているすべてのロールをリストします。すべてのユーザーが自動的に使用できる PUBLIC ロールはリストされていません。
SHARE share_name
共有に付与されているすべての権限をリストします。
SHOW GRANTS OF...
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
ロールに付与された、データベースまたはスキーマで指定された型の新しい(将来の)オブジェクトに対するすべての権限をリストします。
使用上の注意¶
GRANTED_BY 列は、被付与者に権限付与を承認したロールを示します。承認のロールは、 付与者 として知られています。
GRANT <権限> を使用してオブジェクトに対する権限をロールに付与すると、次の承認規則に従って、権限の付与者としてリストされるロールが決定されます。
アクティブロール がオブジェクトの所有者である(つまり、オブジェクトに対する OWNERSHIP 権限を持っている)場合、そのロールが付与者です。
アクティブロールが付与オプションを承認された指定の権限を保持している場合(つまり、権限が GRANT <権限> ... TO ROLE <ロール名> WITH GRANT OPTION でアクティブロールに付与された場合、ここで <ロール名> はアクティブロールの1つです)。その場合、付与オプションを承認された権限を保持するロールが付与者ロールです。複数のアクティブなロールがこの基準を満たす場合、どのロールが付与者のロールになるかは非決定論的であることに注意してください。
アクティブロールが MANAGE GRANTS グローバル権限を保持している場合、付与者ロールはオブジェクト所有者であり、 MANAGE GRANTS 権限を保持していたロールでは ありません。つまり、 MANAGE GRANTS 権限により、そのオブジェクトに対する権限を付与する目的で、ロールはオブジェクト所有者になりすますことができます。
GRANTED_BY 列が空の場合、権限はSnowflake SYSTEM ロールによって付与されました。このロールで特定の内部操作が実行されます。SYSTEM ロールによって承認された権限の付与は、顧客が変更することはできません。
このコマンドは、稼働中のウェアハウスを必要としません。
コマンドは、コマンドを実行するために使用されるロールのアクセス権によって決定された通り、指定されたオブジェクトタイプに対して 最大 10Kのレコードを返します。フィルタが適用されていても、10Kの制限を超えるレコードは返されません。
10Kを超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。
このコマンドの出力を後処理するには、 RESULT_SCAN 関数を使用できます。この関数は、出力をクエリ可能なテーブルとして扱います。
例¶
sales
データベースで付与されたすべての権限をリストします。
SHOW GRANTS ON DATABASE sales; +---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+ | created_on | privilege | granted_on | name | granted_to | grantee_name | grant_option | granted_by | |---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------| | Thu, 07 Jul 2016 05:22:29 -0700 | OWNERSHIP | DATABASE | REALESTATE | ROLE | ACCOUNTADMIN | true | ACCOUNTADMIN | | Thu, 07 Jul 2016 12:14:12 -0700 | USAGE | DATABASE | REALESTATE | ROLE | PUBLIC | false | 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 | +-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------+