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> ] 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> } [ , ... ]
条件:
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>'objectParams ::= ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE NETWORK_POLICY = <string>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>
注釈
読みやすくするために、ユーザーに設定できるセッションパラメーターの完全なリストはここには含まれていません。すべてのセッションパラメーターの完全なリストとその説明、およびアカウントとオブジェクトのパラメーターついては、 パラメーター をご参照ください。
パラメーター¶
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つ(または複数)のオブジェクトプロパティを指定します。オブジェクトプロパティの設定を解除すると、オブジェクトプロパティはデフォルトにリセットされます。
設定できるプロパティ(PASSWORD、 LOGIN_NAME、 DEFAULT_ROLEなど)の詳細については、 CREATE USER をご参照ください。
注釈
EXT_AUTHN_DUO
および EXT_AUTHN_UID
オブジェクトプロパティは変更できません。
多要素認証 を有効または無効にするには、ユーザーの DISABLE_MFA
プロパティを変更します。アカウント管理者が ALTER USERコマンドを実行して DISABLE_MFA
を TRUE
に設定するとき、 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 権限を持つロールまたはそれ以上のロールのみです。
Tip
SET PASSWORD = 'string'
を使用してユーザーのパスワードを変更するときは、MUST_CHANGE_PASSWORD = TRUE
も指定して、ユーザーが他のインターフェイス(例: SnowSQL または別のクライアントアプリケーション)からSnowflakeにログインする前に、ユーザーがウェブインターフェイスにログインしてパスワードを変更するように強制することをお勧めします。または、
RESET PASSWORD
を使用して、ユーザーがパスワードを変更するためにアクセスできるウェブページに URL を生成します。個々のユーザーは自分で 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
を使用します。メタデータについて。
注意
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;
ユーザーから既存のコメントを削除します。
ALTER USER user1 UNSET COMMENT;