Snowflake Postgres向けのSnowflakeトークン認証¶
Snowflakeでは、ユーザーがSnowflake Postgresインスタンスへのログインに使用する有効期限の短いアクセストークンを生成できます。インスタンスレベルでは、これはSnowflake認証と呼ばれ、以下の3つのステップ(詳細は後述)で実行されます。
Snowflake Postgres インスタンスで Snowflake 認証を有効にする。
Snowflake Postgres インスタンス上で、Postgres ユーザーと Snowflake ユーザーの間のマッピングを作成する。
マッピングされた Snowflake ユーザーが、Snowflake Postgresインスタンスへのログインに使用する有効期限の短いアクセストークンを生成します。
注釈
Snowflake Postgres向けのSnowflakeトークン認証は、Snowflakeの認証方法である:doc:`Snowflake OAuth </user-guide/oauth-snowflake-overview>`および:doc:`プログラムによるアクセストークン</user-guide/programmatic-access-tokens>`とは別の機能です。
PostgresユーザーとSnowflakeユーザー間のマッピングの作成¶
PostgresユーザーとSnowflakeユーザー間のマッピングを作成するには、`snowflake_admin`ユーザーでPostgresインスタンスにログインして以下を実行します。
上記のステートメントで指定された``{postgres_user}``および``{snowflake_user}``の名前は、大文字と小文字を区別せずに読み取られます。大文字と小文字の区別が必要な場合は、名前を二重引用符で囲みます。たとえば、Caseyという名前のPostgresユーザーを、同じ名前のSnowflakeユーザーにマップするには、以下を実行します。
PostgresユーザーとSnowflakeユーザー間のマッピングを削除するには、`snowflake_admin`ユーザーでPostgresインスタンスにログインして以下を実行します。
PostgresユーザーとSnowflakeユーザー間にどのようなマッピングが存在するかを確認するには、`snowflake_admin`ユーザーでPostgresインスタンスにログインし、:ref:`label-sfpg_aut_identity_mapping_view`ビューをクエリします。
注釈
Snowflake ユーザーとマッピングされている Postgres ユーザーは、生成された有効期限の短いアクセストークンでのみログインが可能です。そうしたユーザーは Postgres パスワードを使用して接続することはできず、Postgres パスワードを変更することもできません。特定の Postgres ユーザーのために標準のパスワードログイン機能を再度有効にするには、そのPostgres ユーザーと Snowflake ユーザーとのマッピングを削除する必要があります。
マッピングされたSnowflakeユーザー用の有効期限の短いアクセストークンの作成¶
Snowflake Postgres instance owners and Snowflake users with the USAGE privilege granted on a given instance can create short-lived access tokens for themselves on a per-instance basis for instances that have Snowflake authorization enabled per the instructions above in Snowflake PostgresインスタンスでのSnowflake認証の有効化と無効化.
GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER 関数を使用します。
SNOWFLAKE_AUTH.IDENTITY_MAPPINGPostgresビュー¶
このSnowflake Postgresビューを使用して、インスタンス上のPostgresユーザーとSnowflakeユーザー間のすべてのマッピングのリストをクエリできます。
注釈
このビューはSnowflake Postgresインスタンス内でのみクエリでき、Snowflakeから直接クエリすることはできません。
列¶
列名 |
データ型 |
説明 |
|---|---|---|
postgres_role |
name |
マッピングされたPostgresユーザーの名前 |
snowflake_identity |
text |
USER:# 形式のSnowflakeユーザーID。# は:doc:`/sql-reference/account-usage/users`ビューに表示されるマッピングされたSnowflakeユーザーの`user_id`の値です。 |