ALTER USER¶
システム内にある既存のユーザーのプロパティとオブジェクト/セッションパラメーターを変更します。
管理者は、このコマンドを使用して、管理者が適切な権限を持つユーザーに対するプロパティとパラメーターのデフォルトを変更できます。
個々のユーザーはこのコマンドを使用して、特定のプロパティとセッションパラメーターのデフォルトを変更できます。詳細については、 使用上の注意 (このトピック内)をご参照ください。
ユーザーが送信したすべてのクエリ(および他の SQL ステートメント)を中止するためにも使用できます。
- こちらもご参照ください。
CREATE USER、 DROP USER、 SHOW PARAMETERS、 SHOW USERS、 DESCRIBE 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> } [ , ... ]
条件:
mfaActions ::= { ENROLL MFA SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO } REMOVE MFA METHOD <mfa_method> MODIFY MFA METHOD <mfa_method> SET COMMENT = '<string>' }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>'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 | FALSEsessionParams ::= 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>
注釈
読みやすくするために、ユーザーに設定できるセッションパラメーターの完全なリストはここには含まれていません。すべてのセッションパラメーターの完全なリストとその説明、およびアカウントとオブジェクトのパラメーターついては、 パラメーター をご参照ください。
パラメーター¶
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_WAREHOUSE
、DEFAULT_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;
user1
という名前のユーザーのパスワードを H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt
に設定し、Snowflakeウェブインターフェイスにログインしてパスワードの変更をユーザーに義務付けます。
ALTER USER user1 SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;
ユーザーのタイプ を、Snowflakeとプログラムでやり取りするアプリケーションに変更します。
ALTER USER user1 SET TYPE = SERVICE;
ユーザーから既存のコメントを削除します。
ALTER USER user1 UNSET COMMENT;
セカンダリロールをデフォルトでアクティブにしません。
ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ();
すべてのセカンダリロールをデフォルトでアクティブにします。
ALTER USER user1 UNSET DEFAULT_SECONDARY_ROLES;
OR
ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ('ALL');