ALTER USER

システム内にある既存のユーザーのプロパティとオブジェクト/セッションパラメーターを変更します。

  • 管理者は、このコマンドを使用して、管理者が適切な権限を持つユーザーに対するプロパティとパラメーターのデフォルトを変更できます。

  • 個々のユーザーはこのコマンドを使用して、特定のプロパティとセッションパラメーターのデフォルトを変更できます。詳細については、 使用上の注意 (このトピック内)をご参照ください。

ユーザーが送信したすべてのクエリ(および他の SQL ステートメント)を中止するためにも使用できます。

こちらもご参照ください。

CREATE USERDROP USERSHOW PARAMETERSSHOW USERSDESCRIBE USER

構文

ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name>

ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD

ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGATED AUTHORIZATION OF ROLE <role_name> TO SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED { AUTHORIZATION OF ROLE <role_name> | AUTHORIZATIONS } FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] SET { PASSWORD | SESSION } POLICY <policy_name>

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { PASSWORD | SESSION } POLICY

ALTER USER [ IF EXISTS ] [ <name> ] SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER USER [ IF EXISTS ] [ <name> ] UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER USER [ IF EXISTS ] [ <name> ] SET { [ objectProperties ] [ objectParams ] [ sessionParams ] }

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { <object_property_name> | <object_param_name> | <session_param_name> } [ , ... ]
Copy

条件:

objectProperties ::=
    PASSWORD = '<string>'
    LOGIN_NAME = <string>
    DISPLAY_NAME = <string>
    FIRST_NAME = <string>
    MIDDLE_NAME = <string>
    LAST_NAME = <string>
    EMAIL = <string>
    MUST_CHANGE_PASSWORD = TRUE | FALSE
    DISABLED = TRUE | FALSE
    DAYS_TO_EXPIRY = <integer>
    MINS_TO_UNLOCK = <integer>
    DEFAULT_WAREHOUSE = <string>
    DEFAULT_NAMESPACE = <string>
    DEFAULT_ROLE = <string>
    DEFAULT_SECONDARY_ROLES = ( 'ALL' )
    MINS_TO_BYPASS_MFA = <integer>
    DISABLE_MFA = TRUE | FALSE
    RSA_PUBLIC_KEY = <string>
    RSA_PUBLIC_KEY_FP = <string>
    RSA_PUBLIC_KEY_2 = <string>
    RSA_PUBLIC_KEY_2_FP = <string>
    COMMENT = '<string>'
Copy
objectParams ::=
    ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
    NETWORK_POLICY = <string>
Copy
sessionParams ::=
    ABORT_DETACHED_QUERY = TRUE | FALSE
    AUTOCOMMIT = TRUE | FALSE
    BINARY_INPUT_FORMAT = <string>
    BINARY_OUTPUT_FORMAT = <string>
    DATE_INPUT_FORMAT = <string>
    DATE_OUTPUT_FORMAT = <string>
    ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
    ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
    JSON_INDENT = <num>
    LOCK_TIMEOUT = <num>
    QUERY_TAG = <string>
    ROWS_PER_RESULTSET = <num>
    S3_STAGE_VPCE_DNS_NAME = <string>
    SEARCH_PATH = <string>
    SIMULATED_DATA_SHARING_CONSUMER = <string>
    STATEMENT_TIMEOUT_IN_SECONDS = <num>
    STRICT_JSON_OUTPUT = TRUE | FALSE
    TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
    TIMESTAMP_INPUT_FORMAT = <string>
    TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
    TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
    TIMESTAMP_OUTPUT_FORMAT = <string>
    TIMESTAMP_TYPE_MAPPING = <string>
    TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
    TIMEZONE = <string>
    TIME_INPUT_FORMAT = <string>
    TIME_OUTPUT_FORMAT = <string>
    TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
    TWO_DIGIT_CENTURY_START = <num>
    UNSUPPORTED_DDL_ACTION = <string>
    USE_CACHED_RESULT = TRUE | FALSE
    WEEK_OF_YEAR_POLICY = <num>
    WEEK_START = <num>
Copy

注釈

読みやすくするために、ユーザーに設定できるセッションパラメーターの完全なリストはここには含まれていません。すべてのセッションパラメーターの完全なリストとその説明、およびアカウントとオブジェクトのパラメーターついては、 パラメーター をご参照ください。

パラメーター

name

変更するユーザーの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

識別子が省略されている場合、ステートメントはアクティブな(つまり、ログインしている)ユーザーを変更します。 使用上の注意 (このトピック内)で説明されている制限が適用されます。

RENAME TO new_name

ユーザーの新しい識別子を指定します。アカウントに対して一意である必要があります。

詳細については、 識別子の要件 をご参照ください。

RESET PASSWORD

ユーザーと共有できる URL を生成し、ユーザーが新しいパスワードを入力できるウェブページを開きます。生成された URL は1回の使用に有効で、4時間後に期限切れになります。

このパラメーターを指定しても、ユーザーの現在のパスワードは無効に なりません。ユーザーは、 URL を使用してリセットするまで、現在のパスワードを引き続き使用できます。

現在のパスワードを無効にする場合は、代わりに SET PASSWORD = 'string' を使用して、パスワードを新しい値に変更します。

ABORT ALL QUERIES

クエリが実行/スケジュールされているウェアハウスに関係なく、ユーザーが現在実行またはスケジュールしているすべてのクエリおよびその他の SQL ステートメントを中止します。

ユーザーは引き続きSnowflakeにログインして、新しいクエリを開始できることに注意してください。

実行中またはスケジュール済みのすべてのクエリを中止し、ユーザーがSnowflakeにログインしたり、新しいクエリを開始したりできないようにするには、代わりに SET DISABLED = TRUE を指定します。

ADD DELEGATED AUTHORIZATION OF ROLE role_name TO SECURITY INTEGRATION integration_name;

特定の統合に対して指定されたロールを使用して、セッションを開始するユーザーの同意を追加します。

詳細については、 OAuth ユーザーの同意に対する委任された認証の追加 をご参照ください。

REMOVE DELEGATED AUTHORIZATION OF ROLE role_name FROM SECURITY INTEGRATION integration_name. REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION integration_name

ユーザーの同意を取り消します。

  • 最初の構文は、指定されたロールの指定されたセキュリティ統合から同意を取り消します。これには、統合および特定のロールに関連付けられている OAuth アクセストークンを取り消す効果があります。

  • 2番目の構文は、指定されたセキュリティ統合からすべての同意を取り消します。これには、統合に関連付けられた OAuth アクセストークンを取り消す効果があります。

詳細については、以下をご参照ください。

PASSWORD | SESSION POLICY policy_name

ユーザーに設定する パスワードポリシー または セッションポリシー を指定します。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントにあるタグの指定の詳細については、 オブジェクトおよび列のタグクォータ をご参照ください。

オブジェクトプロパティ(objectProperties

SET property_name = property_value [ ... ]. UNSET property_name [ , ... ]

使用するために、設定または設定解除する1つ(または複数)のオブジェクトプロパティを指定します。オブジェクトプロパティの設定を解除すると、オブジェクトプロパティはデフォルトにリセットされます。

設定できるプロパティ(PASSWORD、 LOGIN_NAME、 DEFAULT_ROLEなど)の詳細については、 CREATE USER をご参照ください。

注釈

EXT_AUTHN_DUO および EXT_AUTHN_UID オブジェクトプロパティは変更できません。

多要素認証 を有効または無効にするには、ユーザーの DISABLE_MFA プロパティを変更します。アカウント管理者が ALTER USERコマンドを実行して DISABLE_MFATRUE に設定するとき、 EXT_AUTHN_DUO プロパティの値は自動的に FALSE に設定されます。

プロパティの設定と設定解除の詳細については、 使用上の注意 (このトピック内)をご参照ください。

オブジェクトパラメーター(objectParams

SET ...

ユーザーに設定する1つ(または複数)のパラメーターを指定します(空白、コンマ、または改行で区切られます)。

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

構文エラーや解析エラーによって失敗したクエリが、クエリ履歴にどのように表示されるかを制御します。FALSE の場合は、クエリ履歴を提供するビュー、ページ、および関数から失敗したクエリのコンテンツがマスキングされます。

このパラメーターは、クエリを実行したユーザー以外の、クエリ履歴を表示しているユーザーの動作を制御します。

AUDIT 権限を付与または継承されたロールを持つユーザーのみが、 ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR パラメーターを設定できます。

NETWORK_POLICY = string

ユーザーに対してアクティブな ネットワークポリシー を指定します。

また、パラメーターの設定と設定解除に関するより一般的な詳細については、 使用上の注意 (このトピック内)をご参照ください。

UNSET ...

ユーザーの設定を解除するプロパティを指定し、それらをデフォルトにリセットします。

  • NETWORK_POLICY

  • SESSION POLICY

  • TAG tag_name [ , tag_name ... ]

セッションパラメーター(sessionParams

SET session_param_name = param_value [ ... ]. UNSET session_param_name [ , ... ]

ユーザーのために設定または設定解除する、1つ(または複数)のセッションパラメーターを指定します。セッションパラメーターの設定を解除すると、デフォルトにリセットされます。

設定できるセッションパラメーター(ABORT_DETACHED_SESSION、 AUTOCOMMIT など)の詳細については、 パラメーター をご参照ください。

また、パラメーターの設定と設定解除に関するより一般的な詳細については、 使用上の注意 (このトピック内)をご参照ください。

使用上の注意

  • このコマンドを実行してほとんどのユーザープロパティを変更できるのは、ユーザーに対する OWNERSHIP 権限を持つロールまたはそれ以上のロールのみです。

    ちなみに

    SET PASSWORD = 'string' を使用してユーザーのパスワードを変更するときは、 MUST_CHANGE_PASSWORD = TRUE も指定して、ユーザーが他のインターフェイス(例: SnowSQL または別のクライアントアプリケーション)からSnowflakeにログインする前に、ユーザーがウェブインターフェイスにログインしてパスワードを変更するように強制することをお勧めします。

    または、 RESET PASSWORD を使用して、ユーザーがパスワードを変更するためにアクセスできるウェブページに URL を生成します。

  • 個々のユーザーは自分で ALTER USER コマンドを実行し(つまり、コマンドでユーザー名/識別子を指定することにより)、以下を変更できます。

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

    • セッションパラメーターのデフォルトのいずれか

    ユーザーは、このコマンドを使用してパスワードを変更することは できない ことに注意してください。Snowflakeではセキュリティ上の理由により、ユーザーはウェブインターフェイス内からのみパスワードを変更できるようになっています。

    ただし、適切な権限を持つ管理者は SET PASSWORD = 'string' でこのコマンドを使用して、ユーザーのパスワードを変更できます。

    ちなみに

    ユーザーのパスワードを変更するときは、 MUST_CHANGE_PASSWORD = TRUE も指定して、ユーザーが他のインターフェイス(例: SnowSQL または別のクライアントアプリケーション)からSnowflakeにログインする前に、ウェブインターフェイスにログインしてパスワードを変更するよう、ユーザーに強制することをお勧めします。

    または、 RESET PASSWORD を使用して、ユーザーがパスワードを変更するためにアクセスできるウェブページに URL を生成します。

  • ALTER USER ステートメントは、デフォルトのオブジェクト(DEFAULT_WAREHOUSEDEFAULT_NAMESPACE、および DEFAULT_ROLE)が存在することを検証 しませんDEFAULT_SECONDARY_ROLES はオブジェクト名を値として受け入れませんが、 ALTER USER ステートメントは、サポートされている値が指定されていることを検証します。

  • 単一の ALTER ステートメントで、複数のオブジェクトプロパティとオブジェクト/セッションパラメーターを設定および設定解除できます。

    • 複数のプロパティ/パラメーターを設定する場合は、空白、コンマ、または改行で区切ります。

    • 複数のプロパティ/パラメーターを設定解除する場合は、それらをコンマで区切る 必要 があります。さらに、プロパティ/パラメーターを設定解除する場合は、名前のみを指定します。プロパティ/パラメーターの値を指定すると、エラーが返されます。

  • ユーザーに SET DISABLED = TRUE を指定した場合、

    • ユーザーが現在実行またはスケジュールしているすべてのクエリおよびその他の SQL ステートメントは中止され、ユーザーは追加のクエリを開始できません。

    • ユーザーはSnowflakeからロックアウトされ、再度ログインできません。

    ユーザーの実行中およびスケジュール済みのクエリまたはステートメントをすべて中止する場合は、代わりに ABORT ALL QUERIES を使用します。

  • メタデータについて。

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

user1 の名前を user2 に変更します。

ALTER USER user1 RENAME TO user2;
Copy

user1 という名前のユーザーのパスワードを H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt に設定し、Snowflakeウェブインターフェイスにログインしてパスワードの変更をユーザーに義務付けます。

ALTER USER user1 SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;
Copy

ユーザーから既存のコメントを削除します。

ALTER USER user1 UNSET COMMENT;
Copy