OceanBaseデータベースは、許可リスト戦略を提供し、ネットワークセキュリティアクセス制御を実現します。テナントの許可リスト機能を使用して、どのクライアントが現在のテナントにアクセスできるかを設定できます。
テナントの許可リストは、システム変数 ob_tcp_invited_nodes によって制御される、テナント全体の許可リスト制限パラメータです。デフォルト値は 127.0.0.1,::1 で、ローカルのIPアドレスのみがこのテナントへの接続を許可することを意味します。 この変数はリスト形式の値をサポートしており、リスト内の値は半角カンマ(,)で区切られます。例:A,B,C,D。ユーザーがログインする際、OBServerはユーザーのIPアドレスをA、B、C、Dと順次照合検証します。すべて一致しない場合はアクセスを拒否します。いずれか一つでも一致すれば、許可リストを通過したことになります。
リスト値では、以下の書き込みがサポートされています:
- IPアドレス(例:
192.168.1.1)。照合には完全一致が使用され、ユーザーのClient IPが指定されたIP値と一致する場合にのみマッチとなります。 - パーセント記号(%)またはアンダースコア()を含むIPアドレス(例:
192.168.1.%または `192.168.1.)。照合時はあいまい検索が採用され、LIKE構文に類似した形式となります。 - IP/NETMASKアドレス(例:
192.168.1.0/24または `192.168.1.0/255.255.255.0)。照合にはサブネットマスク照合が適用され、Client_IP & NetMask == IP の条件を満たす場合のみ合致と判定されます。MySQLのサブネットマスク照合と同様の動作です。
説明
テナントの許可リストを変更しても、既に作成された session には影響しません。
テナントの許可リストの確認と設定
rootユーザーでクラスタのsysテナントにログインします。
obclient -uroot@sys -P2881 -h10.xxx.xxx.1 -p*******以下のステートメントを実行して、テナントの許可リストを確認します。
obclient> SHOW VARIABLES LIKE 'ob_tcp_invited_nodes'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | ob_tcp_invited_nodes | % | +----------------------+-------+ここで、値が
%の場合、任意のクライアントIPアドレスからの接続を許可することを意味します。許可リストの設定を変更する必要がある場合、以下のステートメントを実行して、テナントの許可リストを再設定できます。
例:
obclient> SET GLOBAL ob_tcp_invited_nodes='%'; obclient> SET GLOBAL ob_tcp_invited_nodes='10.10.10.%';