メインコンテンツまでスキップ
バージョン: 4.0

CREATE USER

CREATE USER は StarRocks ユーザーを作成します。StarRocks では、「user_identity」がユーザーを一意に識別します。v3.3.3 以降、StarRocks はユーザー作成時にユーザープロパティの設定をサポートしています。

ヒント

user_admin ロールを持つユーザーのみがこの操作を実行する権限を持っています。

構文

CREATE USER [IF NOT EXISTS] <user_identity> 
[auth_option]
[DEFAULT ROLE <role_name>[, <role_name>, ...]]
[PROPERTIES ("key"="value", ...)]

パラメータ

  • user_identity は、「user_name」と「host」の2つの部分から構成され、username@'userhost' の形式です。「host」の部分には、% を使用してあいまい一致を行うことができます。「host」が指定されていない場合、デフォルトで「%」が使用され、ユーザーは任意のホストからStarRocksに接続できることを意味します。

    ユーザー名の命名規則については、以下を参照してください。システム制限

  • auth_option は認証方法を指定します。現在、StarRocksネイティブパスワード、mysql_native_passwordauthentication_ldap_simple、JSON Web Token (JWT) 認証、OAuth 2.0 認証の5つの認証方法がサポートされています。StarRocksネイティブパスワードはロジック上はmysql_native_passwordと同じですが、構文が若干異なります。1つのユーザーIDは1つの認証方法のみを使用できます。

    auth_option: {
    IDENTIFIED BY 'auth_string'
    IDENTIFIED WITH mysql_native_password BY 'auth_string'
    IDENTIFIED WITH mysql_native_password AS 'auth_string'
    IDENTIFIED WITH authentication_ldap_simple AS 'auth_string'
    IDENTIFIED WITH authentication_jwt [AS 'auth_properties']
    IDENTIFIED WITH authentication_oauth2 [AS 'auth_properties']
    }

    | 認証方法 | ユーザー作成時のパスワード | ログイン時のパスワード | | ---------------------------- | ------------------------------ | ---------------------- | | ネイティブパスワード | 平文または暗号文 | 平文 | | mysql_native_password BY | 平文 | 平文 | | mysql_native_password WITH | 暗号文 | 平文 | | authentication_ldap_simple | 平文 | 平文 |

    注記

StarRocksはユーザーのパスワードを保存する前に暗号化します。 :::

JSON Web Token (JWT) 認証およびOAuth 2.0 認証のauth_propertiesの詳細については、対応するドキュメントを参照してください。

  • DEFAULT ROLE <role_name>[, <role_name>, ...]: このパラメータが指定されている場合、ユーザーがログインすると、ロールは自動的にユーザーに割り当てられ、デフォルトでアクティブ化されます。指定されていない場合、このユーザーはどの権限も持ちません。指定されたすべてのロールが既に存在することを確認してください。

  • PROPERTIES は、最大ユーザー接続数 (max_user_connections)、カタログ、データベース、またはユーザーレベルのセッション変数を含むユーザープロパティを設定します。ユーザーレベルのセッション変数は、ユーザーがログインすると有効になります。この機能はv3.3.3以降でサポートされています。

    -- 最大ユーザー接続数を設定します。
    PROPERTIES ("max_user_connections" = "<Integer>")
    -- カタログを設定します。
    PROPERTIES ("catalog" = "<catalog_name>")
    -- データベースを設定します。
    PROPERTIES ("catalog" = "<catalog_name>", "database" = "<database_name>")
    -- セッション変数を設定します。
    PROPERTIES ("session.<variable_name>" = "<value>", ...)
    ヒント
    • PROPERTIES は、ユーザーIDではなくユーザーに対して機能します。
    • グローバル変数および読み取り専用変数は、特定のユーザーに対して設定できません。
    • 変数は次の順序で有効になります: SET_VAR > セッション > ユーザープロパティ > グローバル。
    • 以下を使用して、SHOW PROPERTY特定のユーザーのプロパティを表示できます。

:::

例1: ホストを指定せずに平文パスワードを使用してユーザーを作成します。これは jack@'%' と同等です。

CREATE USER 'jack' IDENTIFIED BY '123456';

例2: 平文パスワードを使用してユーザーを作成し、'172.10.1.10' からのログインを許可します。

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password BY '123456';

例3: 暗号化されたパスワードを使用してユーザーを作成し、'172.10.1.10' からのログインを許可します。

CREATE USER jack@'172.10.1.10' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password AS '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

注: password() 関数を使用して暗号化されたパスワードを取得できます。

例4: ドメイン名 'example_domain' からのログインが許可されたユーザーを作成します。

CREATE USER 'jack'@['example_domain'] IDENTIFIED BY '123456';

例5: LDAP認証を使用するユーザーを作成します。

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple;

例6: LDAP認証を使用し、LDAP内のユーザーの識別名 (DN) を指定してユーザーを作成します。

CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple AS 'uid=jack,ou=company,dc=example,dc=com';

例7: '192.168' サブネットからのログインが許可されたユーザーを作成し、db_adminuser_admin をそのユーザーのデフォルトロールとして設定します。

CREATE USER 'jack'@'192.168.%' DEFAULT ROLE db_admin, user_admin;

例8: ユーザーを作成し、その最大ユーザー接続数を 600 に設定します。

CREATE USER 'jack'@'192.168.%' PROPERTIES ("max_user_connections" = "600");

例9: ユーザーを作成し、そのユーザーのカタログを hive_catalog に設定します。

CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'hive_catalog');

例10: ユーザーを作成し、デフォルトカタログ内のそのユーザーのデータベースを test_db に設定します。

CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'default_catalog', 'database' = 'test_db');

例11: ユーザーを作成し、そのユーザーのセッション変数 query_timeout600 に設定します。

CREATE USER 'jack'@'192.168.%' PROPERTIES ('session.query_timeout' = '600');

例12: JSON Web Token認証を使用してユーザーを作成します。

CREATE USER tom IDENTIFIED WITH authentication_jwt AS
'{
"jwks_url": "http://localhost:38080/realms/master/protocol/jwt/certs",
"principal_field": "preferred_username",
"required_issuer": "http://localhost:38080/realms/master",
"required_audience": "starrocks"
}';

例13: OAuth 2.0認証を使用してユーザーを作成します。

CREATE USER tom IDENTIFIED WITH authentication_oauth2 AS 
'{
"auth_server_url": "http://localhost:38080/realms/master/protocol/openid-connect/auth",
"token_server_url": "http://localhost:38080/realms/master/protocol/openid-connect/token",
"client_id": "12345",
"client_secret": "LsWyD9vPcM3LHxLZfzJsuoBwWQFBLcoR",
"redirect_url": "http://localhost:8030/api/oauth2",
"jwks_url": "http://localhost:38080/realms/master/protocol/openid-connect/certs",
"principal_field": "preferred_username",
"required_issuer": "http://localhost:38080/realms/master",
"required_audience": "12345"
}';
Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.