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.%';