■ はじめに
https://dk521123.hatenablog.com/entry/2022/02/24/231532
を分冊。 SnowflakeのDBアクセス権限に関する調査において、 「SHOW GRANTS TO USER <user_name>」や 「SHOW GRANTS TO ROLE <role_name>」を使った。 個人的に結構よく使うので、まとめておく。
目次
【0】SHOW GRANT 1)構文 【1】Role関連 1)SHOW GRANTS TO ROLE <role_name> 2)SHOW GRANTS OF ROLE <role_name> 【2】User関連 1)SHOW GRANTS TO USER <user_name> 【3】その他 1)SHOW GRANTS ON <object_type> <object_name>
【0】SHOW GRANT
https://docs.snowflake.com/ja/sql-reference/sql/show-grants.html
* すべてのアクセス制御権限を一覧表示 => 【1】以降は、個人的によく使うものを抜粋して紹介する
1)構文
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>
【1】Role関連
コマンド結果の項目
Item name | Explanation |
---|---|
grantee_name | 付与者の名前 |
granted_by | 被付与者(付与された者)に権限付与を承認したロール |
1)SHOW GRANTS TO ROLE <role_name>
* ロールに付与されているすべての権限とロールを一覧表示
コマンド例
-- adminロールに付与された権限を一覧表示 show grants to role admin; +---------------------------------+------------------+------------+------------+------------+--------------+------------+ | created_on | privilege | granted_on | name | granted_to | grant_option | granted_by | |---------------------------------+------------------+------------+------------+------------+--------------+------------+ | Wed, 17 Dec 2014 18:19:37 -0800 | CREATE WAREHOUSE | ACCOUNT | DEMOENV | ADMIN | false | SYSADMIN | +---------------------------------+------------------+------------+------------+------------+--------------+------------+
2)SHOW GRANTS OF ROLE <role_name>
* ロールが付与されているすべてのユーザーとロールを一覧表示
コマンド例
-- adminロールに付与されたロールとユーザーを一覧表示 show grants of role admin; +---------------------------------+---------+------------+--------------+---------------+ | created_on | role | granted_to | grantee_name | granted_by | |---------------------------------+---------+------------+--------------+---------------| | Tue, 05 Jul 2016 16:16:34 -0700 | ADMIN | ROLE | ANALYST_US | SECURITYADMIN | | Tue, 05 Jul 2016 16:16:34 -0700 | ADMIN | ROLE | DBA | SECURITYADMIN | | Fri, 08 Jul 2016 10:21:30 -0700 | ADMIN | USER | JOESM | SECURITYADMIN | +---------------------------------+---------+------------+--------------+---------------+
【2】User関連
1)SHOW GRANTS TO USER <user_name>
* ユーザーに付与されているすべてのロールを一覧表示
使用上の注意
* すべてのユーザが自動的に使用できる PUBLIC ロールはリスト表示されない
【3】その他
1)SHOW GRANTS ON <object_type> <object_name>
* オブジェクト(以下の例だとDB)に対して 付与されているすべての権限を一覧表示する
コマンド例
-- test_dbデータベースに付与された権限を一覧表示 show grants on database test_db; +---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+ | 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 | +---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world ~
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ SHOW / DESCRIBE ~
https://dk521123.hatenablog.com/entry/2022/02/24/231532
Snowflake ~ GRANT OWNERSHIP ~
https://dk521123.hatenablog.com/entry/2022/02/25/094250
所有権変更後にエラー「current role has no privileges on it」
https://dk521123.hatenablog.com/entry/2023/04/14/151140