【Snowflake】Snowflake ~ SHOW / DESCRIBE ~

■ はじめに

Snowflake で、「show users」や「show roles」 などを
使ったので、メモしておく。
ついでに、DESCRIBE に関してもメモ。

目次

【1】SHOW <オブジェクト>
 1)SHOW USERS
 2)SHOW ROLES
 3)SHOW GRANTS
 4)SHOW TABLES
【2】DESCRIBE <オブジェクト>
 1)DESCRIBE USER <name>
 2)DESCRIBE TABLE <name>
 3)DESCRIBE INTEGRATION <name>

【1】SHOW <オブジェクト>

https://docs.snowflake.com/ja/sql-reference/sql/show.html

* 指定したオブジェクトタイプの既存のオブジェクトを一覧表示する
* SHOW <複数形のオブジェクト>で指定

1)SHOW USERS

https://docs.snowflake.com/ja/sql-reference/sql/show-users.html

* システム内のユーザーを表示する

コマンド例

-- 全てのユーザを一覧表示
SHOW USERS;

-- 「admin」と付けられたユーザを一覧表示
SHOW USERS LIKE '%admin%'

2)SHOW ROLES

https://docs.snowflake.com/ja/sql-reference/sql/show-roles.html

* アカウント全体で表示できるすべてのロールを一覧表示

https://dev.classmethod.jp/articles/how-to-check-the-pliviledges-granted-to-a-role/

コマンド例

-- 全てのロールを一覧表示
SHOW ROLES;

-- 「admin」と付けられたロールを一覧表示
SHOW ROLES LIKE '%admin%'

3)SHOW GRANTS

https://docs.snowflake.com/ja/sql-reference/sql/show-grants.html

* すべてのアクセス制御権限を一覧表示

コマンド例

-- 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 |
+---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+

-- 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   |
+---------------------------------+------------------+------------+------------+------------+--------------+------------+

-- 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 |
+---------------------------------+---------+------------+--------------+---------------+

4)SHOW TABLES

https://docs.snowflake.com/ja/sql-reference/sql/show-tables.html

* アクセス権限があるテーブルを一覧表示
 => owner(所有するロール), is_external(外部テーブルかどうか) などを
  調べるために使える

サンプル

show tables like '%hello%';

【2】DESCRIBE <オブジェクト>

https://docs.snowflake.com/ja/sql-reference/sql/desc.html

* 指定されたオブジェクトの詳細を説明
* DESCRIBE <単数形のオブジェクト>で指定
* 「DESC <object>」でもOK

1)DESCRIBE USER

https://docs.snowflake.com/ja/sql-reference/sql/desc-user.html

* ユーザー情報(プロパティの現在の値とデフォルト値など)を表示

コマンド例

-- ユーザ「admin」に関しての情報を表示
DESCRIBE USER "admin";

2)DESCRIBE TABLE

https://docs.snowflake.com/ja/sql-reference/sql/desc-table.html

* テーブル情報(テーブルの列など)を表示

コマンド例

-- テーブル「target_db.target_schema.test_table」に関しての情報を表示
DESCRIBE TABLE "target_db"."target_schema"."test_table";

3)DESCRIBE INTEGRATION

https://docs.snowflake.com/ja/sql-reference/sql/desc-integration.html

* 指定した統合(INTEGRATION)の内容を、表示する

コマンド例

-- 統合「sample_integ」に関しての情報を表示
DESCRIBE INTEGRATION sample_integ;

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 基本編 / データ型 ~
https://dk521123.hatenablog.com/entry/2021/12/16/095524
Snowflake ~ 基本編 / キャスト ~ ~
https://dk521123.hatenablog.com/entry/2021/12/15/162658
Snowflake ~ 基本編 / データロード ~
https://dk521123.hatenablog.com/entry/2021/11/15/221245
Snowflake ~ 基本編 / アクセス制御 ~
https://dk521123.hatenablog.com/entry/2021/11/16/231010
Snowflake ~ 基本編 / ゼロコピークローン ~
https://dk521123.hatenablog.com/entry/2021/11/27/134934
Snowflake ~ GRANT OWNERSHIP ~
https://dk521123.hatenablog.com/entry/2022/02/25/094250
エラー「Failed to cast variant value "" to XXX」時の対応
https://dk521123.hatenablog.com/entry/2021/12/17/102659