説明
CREATE USER ステートメントは、新しいOceanBaseデータベースユーザーを作成するために使用します。新しいユーザーを作成すると、そのユーザーでOceanBaseデータベースに接続できるようになります。
制限事項と注意点
- 認証文字列形式検証:
IDENTIFIED AS/BY PASSWORDは$S$形式を検証し、$A$(sha2)などの誤った形式は拒否されます。 - 標準MySQL Connectorは、
caching_sha2_password認証プラグインを使用するユーザーへの接続をサポートします。 ob_sm3_passwordはOceanBase独自の認証プラグインであり、標準MySQL Connectorや対応していないODPでは、この認証プラグインを使用するユーザーへの接続ができない場合があります。
権限要件
CREATE USER ステートメントを実行してユーザーを作成するには、現在のユーザーがグローバルなCREATE USER権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。
構文
CREATE USER [IF NOT EXISTS] {user [, user...]}
[REQUIRE {NONE | SSL | X509 | tls_option}]
[WITH resource_option [resource_option...]];
user:
user_name
| user_name IDENTIFIED [WITH auth_plugin] BY password
| user_name IDENTIFIED [WITH auth_plugin] BY PASSWORD password
| user_name IDENTIFIED [WITH auth_plugin] AS PASSWORD 'auth_string'
auth_plugin:
mysql_native_password
| caching_sha2_password
| ob_sm3_password
tls_option:
CIPHER cipher_name
| ISSUER issuer_name
| SUBJECT subject_name
resource_option:
MAX_CONNECTIONS_PER_HOUR integer
| MAX_USER_CONNECTIONS integer
パラメータ説明
パラメータ |
説明 |
|---|---|
| IF NOT EXISTS | ユーザー名が既に存在する場合、作成しないことを示します。ユーザー作成時に、作成対象のユーザー名が既に存在し、IF NOT EXISTS を指定しなかった場合、エラーが発生します。 |
| user_name | ユーザー名です。新規ユーザー作成後、mysql.user テーブルにそのユーザーのレコードが追加されます。複数のユーザーを同時に作成する場合は、半角カンマ(,)で区切ります。 |
| auth_plugin | ユーザー認証方式(認証プラグイン)を指定するために使用します。詳細については、以下の auth_plugin を参照してください。 |
| IDENTIFIED BY password | 作成予定のユーザーにパスワードを設定します。ここでのパスワードは平文で、mysql.user テーブルに格納された後、サーバー側で暗号化されます。パスワードに特殊文字 ~!@#%^&*_-+=`|(){}[]:;',.?/ が含まれる場合は、半角引用符(' または ")で囲む必要があります。 |
| IDENTIFIED BY PASSWORD password | 作成予定のユーザーにパスワードを設定します。ここでのパスワードは暗号文で、直接 mysql.user テーブルに格納されます。 |
| IDENTIFIED AS PASSWORD | アカウント認証プラグインを auth_plugin に設定し、auth_string の値を mysql.user テーブルに格納します。プラグインがハッシュ文字列を必要とする場合、その文字列がプラグインが必要とするハッシュ形式であると仮定されます。 |
| REQUIRE | ユーザーのパスワード認証要件を指定します。以下の値があります。
|
| tls_option | TLS要件の具体的なオプションを指定します。
|
| resource_option | ユーザーのリソースオプションを指定します。複数のリソースオプションを指定する場合は、半角スペースで区切ります。
|
auth_plugin
mysql_native_password:従来のパスワード認証プラグインで、SHA-1ハッシュアルゴリズムを使用します。caching_sha2_password:SHA-256ベースのパスワード認証プラグインで、より高いセキュリティレベルを提供します。説明
V4.4.2バージョンでは、V4.4.2 BP2バージョンから認証プラグイン
caching_sha2_passwordがサポートされています。ob_sm3_password:このプラグインは、認証プロトコルとステートマシンをcaching_sha2_passwordと完全に共有しています(AuthSwitch、高速認証/完全認証、TLS/RSAによるパスワードの暗号化送信)。ただし、アルゴリズムとメタデータは独立しており、パスワードの保存と認証検証にはSHA-256の代わりにSM3ハッシュアルゴリズムを使用します。説明
V4.4.2バージョンでは、V4.4.2 BP3バージョンから認証プラグイン
ob_sm3_passwordがサポートされています。
例
ユーザーtest1とtest2を作成し、平文パスワードとユーザーに許可される最大接続数を指定します。
obclient> CREATE USER IF NOT EXISTS test1 IDENTIFIED BY '********', test2 IDENTIFIED BY '********' WITH MAX_USER_CONNECTIONS 10;ユーザーtest3を作成し、暗号文パスワードを指定すると同時に、SSL接続を使用した認証を必須とします。
obclient> CREATE USER IF NOT EXISTS test3 IDENTIFIED BY PASSWORD '********' REQUIRE SSL;ユーザーtest4を作成し、mysql_native_password認証プラグインの使用を指定します。
obclient> CREATE USER IF NOT EXISTS test4 IDENTIFIED WITH mysql_native_password BY PASSWORD '********';
関連ドキュメント
ユーザー権限の付与操作については、権限の付与を参照してください。
作成したユーザー情報は
mysql.userテーブルで確認できます。mysql.userテーブルの詳細については、mysql.userを参照してください。作成したユーザーでOceanBaseデータベースに接続する操作については、OceanBaseデータベースへの接続の章を参照してください。
デフォルトプラグインの使用方法については、default_authentication_pluginを参照してください。
認証プラグインの使用方法については、認証を参照してください。