Security and Roles¶
基本的なパッケージのインストールと構成を超えて、 HARP自分自身が動作するにはPostgresの権限が必要です。これらにより、必要に応じてPostgresまたはBDRに関する情報を収集し、ConsensusLayer内のノードステータスを維持できます。
Postgresの許可¶
node.dsnパラメータで指定されたロールは、次のいずれかの方法で作成されている必要があります。
CREATE USER ...CREATE ROLE ... WITH LOGIN
これにより、ロールがデータベースにロギングして診断情報を収集できるオーダーになります。
同様に、このロールのpg_hba.confにエントリーが存在する必要があります。これは多くの方法で行うことができます。例として、すべてのデータベースホストが10.10.*のどこかに配置されているVPNサブネットを考えます。そのような場合、最も簡単なアプローチは特定の行を追加することです:
# TYPE DATABASE USER ADDRESS METHOD
hostssl all harp_user 10.10.1.1/16 scram-sha-256
!!! Note *
この場合、廃止されたmd5ではなく、より新しいscram-sha-256認証を使用しました。また、hostsslを指定してSSL認証を要求することも選択しました。
BDRのアクセス許可¶
BDRノードには、特定のロールがHARP対応ユーザに付与されている場合にのみ可視されるメタデータとビューがあります。この場合、 HARPユーザは以下を必要とします:
GRANT bdr_monitor TO harp_user;
bdr_monitor
BDRロールは、クラスタオペレーションに関する継続的な情報を維持するためのステータスモニタリングツールを対象としているため、
HARPに最適です。
BDRコンセンサス権限¶
dcs.driver設定パラメータがbdrに設定されている場合、
HARPはコンセンサスレイヤーとしてBDR自分自身を利用します。そのため、現在bdr_superuserロールでのみ使用可能なAPIメソッドへのアクセスが必要です。これは、
HARP対応ユーザが以下を必要とすることを意味します。
GRANT bdr_superuser TO foobar;
これはBDRの将来のバージョンで変わるかもしれませんが、現在BDRconsensusモデルへのアクセスはスーパーユーザ同等のパーミッションを必要とします。
!!! Important *
BDRスーパーユーザーはPostgresスーパーユーザーではありません*。
bdr_superuserロールには、制限された機能、テーブル、ビュー、およびその他のオブジェクトへのアクセスなど、
BDR内での昇格された特権が付与されるだけ自分自身。