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> ] mfaActions

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

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { AUTHENTICATION | 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

条件:

mfaActions ::=
  {
    ENROLL MFA
    SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }
    REMOVE MFA METHOD <mfa_method>
    MODIFY MFA METHOD <mfa_method> SET COMMENT = '<string>'
  }
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>
    TYPE = PERSON | SERVICE | LEGACY_SERVICE | NULL
    COMMENT = '<string>'
Copy
objectParams ::=
    ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
    ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = TRUE | FALSE
    NETWORK_POLICY = <string>
    PREVENT_UNLOAD_TO_INLINE_URL = TRUE | FALSE
    PREVENT_UNLOAD_TO_INTERNAL_STAGES = TRUE | FALSE
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>
    DEFAULT_NULL_ORDERING = <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 アクセストークンを取り消す効果があります。

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

{ AUTHENTICATION | 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つ(または複数)のオブジェクトプロパティを指定します。オブジェクトプロパティの設定を解除すると、オブジェクトプロパティはデフォルトにリセットされます。

TYPE = { PERSON | SERVICE | LEGACY_SERVICE | NULL }

ユーザーのタイプを変更します。このプロパティを設定して、人間、サービス、レガシーサービスのユーザーを区別することができます。これらのタイプのユーザーの特徴については、 ユーザーのタイプ をご参照ください。

PERSON

Snowflakeとやり取りする人間のユーザー。

SERVICE

人間の仲介なしにSnowflakeとやり取りするサービスやアプリケーションのユーザー。

ユーザーが ALTER USER コマンドを使用して TYPE プロパティを SERVICE に設定した場合、互換性のないプロパティは保存されたままですが、 DESCRIBE USER などのコマンドでは返されません。互換性のないプロパティは、 ALTER USER コマンドでは設定できません。

TYPE プロパティが SERVICE に設定されているユーザーが、 TYPE プロパティが PERSON または NULL に設定されているユーザーに変更された場合、互換性のないプロパティは復元され、 PASSWORD プロパティを含め、変更することができます。

LEGACY_SERVICE

TYPE プロパティが LEGACY_SERVICE にセットされているユーザーは、非インタラクティブ統合を表しています。 SERVICE と似ていますが、パスワードとSAMLの認証を許可します。

NULL

PERSON と同じように機能します。

DISABLE_MFA = { TRUE | FALSE }

このパラメーターの効果は、ユーザーが自発的に MFA に登録したか、登録を要求されたかによって異なります。

  • ユーザーが MFA を使用する必要がある認証ポリシーの対象である場合、このパラメーターを TRUE に設定すると、そのユーザーの MFA 方法がクリアされます。次にユーザーがサインインすると、第2認証要素として使用できる新しい MFA 方法を追加するよう求められます。

  • ユーザーが自発的に MFA に登録した場合、このパラメーターを TRUE に設定すると、パスワードユーザーは第2認証要素なしで認証できます。

設定できる他のオブジェクトプロパティ(例えば、 PASSWORD、 LOGIN_NAME、 DEFAULT_ROLE)の詳細については、 CREATE USER をご参照ください。

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

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

SET ...

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

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

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

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

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

ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = { TRUE | FALSE }

セキュアオブジェクトに関連するエラーメッセージをメタデータで編集するかどうかを制御します。セキュアオブジェクトのエラーメッセージ編集の詳細については、 セキュアオブジェクト: エラーメッセージの情報の再編集 をご参照ください。

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

ALTER USER コマンドを使用して、特定のユーザーのパラメーターを TRUE に設定する場合は、エラーを起こしたユーザーではなく、メタデータで編集されたエラーメッセージを表示したいユーザーを変更します。

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 など)の詳細については、 パラメーター をご参照ください。

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

多要素認証(MFA)アクション(mfaActions)

user ENROLL MFA

指定したユーザーを多要素認証(MFA)に登録し、第2認証要素を追加するよう促します。

  • ユーザーのメールが認証済みの場合、Snowflakeは MFA 認証方法を追加するよう促すメールを送信します。

  • ユーザーのメールが認証済みではない場合、Snowflakeはユーザーに MFA 認証方法を追加するよう促すページの URL を返します。

SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }

現在のユーザーに複数の MFA 方法がある場合、第2認証要素としてどの方法を使用するかを指定します。

user REMOVE MFA METHOD mfa_method

指定されたユーザーが以前に設定した MFA 方法を削除します。ユーザーは、 MFA 方法を第2認証要素として使用できなくなります。

mfa_method の識別子を取得するには、 SHOW MFA METHODS コマンドを実行し、 name 列の値を見つけます。

[ user ] MODIFY MFA METHOD mfa_method SET COMMENT = 'string'

指定された MFA 方法に説明的な名前を設定します。

mfa_method の識別子を取得するには、 SHOW MFA METHODS コマンドを実行し、 name 列の値を見つけます。

ユーザーは、 user を省略して、独自の MFA 方法に説明的な名前を設定することができます。

使用上の注意

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

    Tip

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

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

  • ACCOUNTADMIN ロールを持つユーザーのみが、以下のパラメーターを設定できます。

    • PREVENT_UNLOAD_TO_INLINE_URL

    • PREVENT_UNLOAD_TO_INTERNAL_STAGES

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

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

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

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

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

    Tip

    ユーザーのパスワードを変更するときは、 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 を使用します。

  • ユーザーの TYPE プロパティが SERVICE の場合、以下のコマンドは使用できません。

    • ALTER USER RESET PASSWORD

    • ALTER USER SET DISABLE_MFA = TRUE

  • メタデータについて。

    注意

    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

ユーザーのタイプ を、Snowflakeとプログラムでやり取りするアプリケーションに変更します。

ALTER USER user1 SET TYPE = SERVICE;
Copy

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

ALTER USER user1 UNSET COMMENT;
Copy

セカンダリロールをデフォルトでアクティブにしません。

ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ();
Copy

すべてのセカンダリロールをデフォルトでアクティブにします。

ALTER USER user1 UNSET DEFAULT_SECONDARY_ROLES;
Copy

OR

ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ('ALL');
Copy