1.クライアントアクセス認証を構成します
クライアントアクセス認証は、データベースのデータディレクトリに保存されている構成ファイル(デフォルト名はpg_hba.conf)によって制御されます。hba(ホストベースの認証)は、ホストベースの認証を意味します。
背景情報
GaussDBは、次の3つの認証方法をサポートしています。認証方法に関係なく、pg_hba.confファイルを構成する必要があります。
- ホストベースの認証:サーバーは、クライアントのIPアドレス、ユーザー名、およびアクセスするデータベースに基づいて構成ファイルをチェックし、ユーザーが認証されているかどうかを判断します。
- パスワード認証:リモート接続用の暗号化されたパスワード認証とローカル接続用の暗号化されていないパスワード認証を含みます。
- SSL暗号化:VPP SSLを使用して、サーバーとクライアントの間に安全な接続環境を提供します。
- pg_hba.confファイルの形式は、1行に書き込まれるレコードであり、認証ルールを示し、空白とコメント(#で始まる)は無視されます。
- 各認証ルールは、スペースやタブで区切られたいくつかのフィールドで構成されています。フィールドが引用符で囲まれている場合は、空白を含めることができます。レコードは行をまたいで存在することはできません。
pg_hba.confファイルの各レコードは、次の4つの形式のいずれかになります。4つの形式のパラメーターの説明については、構成ファイルのリファレンスを参照してください。
local DATABASE USER METHOD [OPTIONS]
host DATABASE USER ADDRESS METHOD [OPTIONS]
hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
システムは、認証中に接続要求シーケンスごとにpg_hba.confのレコードをチェックするため、したがって、これらのレコードの順序は非常に重要です。
したがって、認証ルールの構成に関する推奨事項は次のとおりです。
- 上位のレコードには、より厳密な接続パラメーターとより弱い認証方法があります。
- 下位のレコードは、接続パラメーターが緩く、認証方法が厳密です。
注:
ユーザーが特定のデータベースに正常に接続するには、pg_hba.confのルールのチェックに合格するだけでなく、データベースに対するCONNECT権限も必要です。どのユーザーがどのデータベースに接続できるかを制限したい場合は、通常、pg_hba.confでルールを設定するよりも、CONNECT権限を付与/取り消す方が簡単です。
構成を有効にするためにデータベースサービスを再起動します。
gs_ctl restart
- 表1エラープロンプト
問題現象 | 解決 |
ユーザーが存在しないか、パスワードが間違っています: 致命的:無効なユーザー名/パスワード、ログインが拒否されました |
このメッセージは、ユーザー名またはパスワードが間違っていることを示しています。入力が間違っていないか確認してください。 |
接続されたデータベースが存在しません: 致命的:データベース "TESTDB"が存在しません |
このメッセージは、接続しようとしているデータベースが存在しないことを示しています。接続しようとしているデータベースの名前が間違って入力されていないか確認してください。 |
クライアント一致レコードが見つかりませんでした: 致命的:ホスト "123.123.123.123"、ユーザー "ANDYM"、データベース "TESTDB"のpg_hba.confエントリがありません |
このメッセージは、サーバーが接続されていることを示していますが、サーバーはpg_hba.conf構成ファイルで一致するレコードが見つからなかったため、接続要求を拒否しました。データベース管理者に連絡して、pg_hba.conf構成ファイルに情報を追加してください。 |
- タスクの例
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#表示只允许以安装时-U参数指定的用户从服务器本机进行连接
local all all trust
# IPv4 local connections:
#表示允许gaussdba用户从10.10.10.2主机上连接到GaussDB的任意数据库,使用sha256算法对密码进行加密
host all gaussdba 10.10.10.2/32 sha256
#表示允许任何用户从10.0.0.0/8网段的主机上连接到GaussDB的任意数据库,使用sha256算法对密码进行加密
hostssl all all 10.0.0.0/8 sha256
2.構成ファイルのリファレンス
表1パラメーターの説明
パラメータ名 | 説明 | 範囲 |
地元 | このレコードがUnixドメインソケットを介した接続のみを受け入れることを示します。このタイプのレコードがないと、Unixドメインソケット接続は許可されません。 gsqlを使用してサーバーからネイティブに接続し、-Uパラメーターが指定されていない場合にのみ、Unixドメインソケットを介した接続が行われます。 |
- |
ホスト | これは、このレコードが通常のTCP / IPソケット接続を受け入れ、SSLで暗号化されたTCP / IPソケット接続も受け入れることを意味します。 | - |
hostssl | このレコードがSSLで暗号化されたTCP / IPソケット接続のみを受け入れることを示します。 | 安全な接続にSSLを使用するには、デジタル証明書を申請するように構成し、関連するパラメーターを構成する必要があります。詳細については、「安全なTCP / IP接続にSSLを使用する」を参照してください。 |
hostnossl | このレコードが通常のTCP / IPソケット接続のみを受け入れることを示します。 | - |
データベース | レコードが一致し、アクセスを許可するデータベースを宣言します。 | all:レコードがすべてのデータベースと一致することを示します。 sameuser:要求されたデータベースと要求されたユーザーが同じ名前の場合、一致することを示します。 samerole:要求されたユーザーがデータベースと同じ名前のロールのメンバーである必要があることを示します。 特定のデータベースの名前、またはデータベースのコンマ区切りのリスト。 注: 「all」キーワードは「replication」と一致しません。レプリケーションにアクセスするには、別のレコードを使用する必要があります。 |
ユーザー | レコードが一致するデータベースユーザーを宣言し、アクセスを許可します。 | all:レコードがすべてのユーザーに一致することを示します。 特定のデータベースユーザーの名前、またはユーザーのコンマ区切りリスト。 プレフィックス+ユーザーロールは、このロールに直接または間接的に属するすべてのメンバーと一致することを意味します。 ユーザー名を含むファイルは、ファイル名の前に@を付けることで宣言できます。ファイル内のユーザーのリストは、コンマまたは改行で区切られます。 |
住所 | レコードに一致し、アクセスを許可するIPアドレスの範囲を指定します。 | IPv4とIPv6をサポートしており、 IPアドレス/マスク長の2つの形式で表すことができます。たとえば、10.10.10.0 / 24IP アドレスのサブネットマスク。たとえば、10.10.10.0 255.255.255.0 は、次 のことを意味します。IPv4形式で指定されたIPアドレスは、対応するアドレスを持つIPv6接続と一致します。たとえば、127.0.0.1はIPv6アドレス:: ffff:127.0.0.1と一致します。 |
方法 | 接続時に使用する認証方法を宣言します。 | GaussDBは、次の認証方式をサポートしています詳細な説明については、表2を参照してください:。 信頼は 拒否 (推奨されません)MD5を SHA256 |
オプション | OPTIONは認証用の選択セットであり、その形式はNAME = VALUEです。 | 使用可能なオプションは、認証方法によって異なります。 注: GaussDBでサポートされている認証方法では、このパラメーターは必要ありません。 |
表2認証方法
検証方法 | 説明 |
信頼 | この認証モードを採用した場合、GaussDBはサーバーからのgsqlを使用する接続のみを完全に信頼し、-Uパラメーターを指定しません。現時点では、パスワードは必要ありません。 信頼認証は、シングルユーザーワークステーションのローカル接続に非常に適しており、便利であり、通常、マルチユーザー環境には適していません。この認証方法を使用する場合は、ファイルシステムのアクセス許可を使用して、サーバーのUnixドメインソケットファイルへのアクセスを制限できます。この制限を行うには 、unix_socket_permissionsパラメーターとunix_socket_groupパラメーターを設定する2つの方法があります。 unix_socket_directoryを設定して、Unixドメインソケットファイルを適切に制限されたディレクトリに配置します。 注: ファイルシステムのアクセス許可の設定は、Unixドメインソケット接続にのみ役立ちます。ローカルTCP / IP接続は制限されません。ローカルTCP / IPセキュリティを確保するために、GaussDBはリモート接続が信頼認証方式を使用することを許可していません。 |
拒否する | 無条件に接続を拒否します。多くの場合、特定のホストをフィルタリングするために使用されます。 |
md5 | クライアントは、認証のためにmd5暗号化パスワードを提供する必要があります。 注意: md5は安全でない暗号化アルゴリズムであり、ネットワークセキュリティのリスクをもたらすため、md5認証は推奨されません。GaussDBは、サードパーティツール(TPCC評価ツールなど)の使用を容易にするために、md5認証とパスワードストレージを保持しています。 |
sha256 | クライアントは、認証のためにsha256アルゴリズムで暗号化されたパスワードを提供する必要があります。パスワードは、セキュリティを強化するために、送信プロセス中にソルトの一方向のsha256暗号化(サーバーからクライアントに送信される乱数)と組み合わされます。 |