本記事では、OceanBaseデータベースのOracleモードにおける認証と認可の仕組みについて説明します。ユーザー認証、アイデンティティの構成要素、および認証プラグインの使用方法が含まれます。
認証機能は、データベースにログインするユーザーの身元を確認し、そのユーザーがデータベースのユーザーと関連付けられるかどうかを検証し、関連付けられたユーザーの権限に基づいてデータアクセス活動をセキュリティ制御するために使用されます。認証プラグイン(Authentication Plugin)は、ユーザーパスワードの検証プロセスで使用されます。Oracleモードでは、OceanBaseデータベースは認証プラグインを通じてパスワードのハッシュ計算と検証方式を制御することをサポートしています。
適用対象
このドキュメントはOceanBaseデータベースのOracleモードにのみ適用されます。現在、OceanBaseデータベースCommunity EditionはMySQLモードのみを提供しています。MySQLモードにおける認証については、認証を参照してください。
ユーザー認証
Oracleモードでは、OceanBaseのユーザー認証とは、OceanBaseのユーザー名とパスワードを用いてユーザーの身元を識別し、ユーザーがアクセス可能な機能やリソースなどを特定することです。OceanBaseデータベースでは、すべてのユーザーが正しいユーザー名とパスワードを使用してログインする必要があり、これによりデータベースのセキュリティが保護されます。
アイデンティティ
Oracleモードでは、テナント内でのユーザー名は一意ですが、異なるテナントのユーザーが同名である場合があります。そのため、ユーザー名@テナント名 の形式でシステム全体でユニークにユーザーを特定します。ここに例を示します:
SYSユーザーを使用して、クラスタのOracleテナントにログインします。obclient -usys@oracle -h10.xxx.xxx.1 - P2881 -P*******以下のコマンドを実行して、ユーザー
u1を作成します。obclient> CREATE USER u1 IDENTIFIED BY ******; Query OK, 0 rows affected (0.064 sec)以下のコマンドを実行して、ユーザー
u1にデータベース接続権限を付与します。obclient>GRANT CREATE SESSION TO u1; Query OK, 0 rows affected (0.045 sec)u1ユーザーを使用して、クラスタにログインします。$obclient -h10.xxx.xxx.1 -P2881 -uu1@oracle001 -p****** -A Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221707914 Server version: OceanBase 4.0.0.0 (r101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322) (Built Dec 7 2022 16:22:15) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [U1]>
認証プラグイン
注意
OceanBaseデータベースは、OracleモードのV4.4.2 BP2バージョンからパスワード認証プラグインメカニズムをサポートしています。
ユーザー作成時や変更時に、caching_sha2_password 認証プラグイン(SHA-256アルゴリズムベース)を明示的に指定することで、より高いセキュリティレベルを実現できます。
ユーザー作成時に認証プラグインを指定しなかった場合、デフォルトで ob_native_password(mysql_native_password と同等で、SHA-1アルゴリズムを使用)が使用されます。caching_sha2_password をデフォルトの認証プラグインに設定するには、システム変数 default_authentication_plugin を設定します。
コンポーネントとドライバーのバージョン要件
caching_sha2_password 認証プラグインを使用する場合、データベースコンポーネントとクライアントドライバーは以下のバージョン要件を満たしている必要があります:
コンポーネント/ドライバー |
バージョン要件 |
|---|---|
| OceanBase データベースプロキシ(ODP) | V4.4.0 以降 |
| OBClient | V2.2.13 以降 |
| OB-JDBC | V2.4.18 以降 |
| OBCI | V2.1.1.3 以降 |
例
ユーザー作成時や変更時に、IDENTIFIED WITH auth_plugin 構文を使用して認証プラグインを指定できます。
-- 指定しない場合、デフォルトで ob_native_password が使用されます
CREATE USER user1 IDENTIFIED BY "******";
-- caching_sha2_password の使用を明示的に指定
CREATE USER user2 IDENTIFIED WITH caching_sha2_password BY "******";
-- ユーザーの認証プラグインを変更
ALTER USER user1 IDENTIFIED WITH caching_sha2_password BY "******";
-- ユーザーの認証プラグイン情報を確認
SELECT username, plugin FROM dba_users WHERE username LIKE 'USER_%';
Oracleモードにおける IDENTIFIED WITH 構文の詳細については、CREATE USER を参照してください。