ログインロールに特権を直接割り当てることができないため、シングルユーザーの場合は、ログインロールを作成する必要があり、それぞれのグループロールよりも作成する必要があります。本当ですか?そのような分離の目的は何ですか?
また、私が理解しているように、認証はlogin roleでのみ可能です。 グループロールのパスワードフィールドの目的は何ですか?または、グループの役割として認証することは可能ですか?では、なぜ誰もがログインロールを必要とするのでしょうか。
また、pg_hbaでログインロールとグループロールの両方を設定できるようです。
これらすべての質問は基本的に ドキュメント で回答されています。具体的には:
ロールは、データベースオブジェクトを所有し、データベース権限を持つエンティティです。役割は、その使用方法に応じて、「ユーザー」、「グループ」、またはその両方と見なすことができます。
これは、LOGIN
オプションを除いて、内部的にこれらの間に違いがないことを意味します。 LOGIN
を指定する場合(またはCREATE USER
を使用):
CREATE ROLE dezso WITH LOGIN PASSWORD 'bla';
dezso
はログインロールになります。ログイン以外のロールのパスワードも指定できます。後でログインロールにする場合は、
CREATE ROLE non_login_role PASSWORD 'bla';
--later
ALTER ROLE non_login_role WITH LOGIN;
「ログインロールでの認証のみが可能です」と言ったのはあなたの言うとおりです。ただし、 password
またはmd5
認証方法以外を使用する場合、パスワードは必ずしも必要ではないことに注意してください。一方、これは、LOGIN
オプションが設定されていないロールは、いかなる方法でもログインできないことを意味します。
最後に、非ログインロールのルールをpg_hba.conf
に設定できますが、これは認証にのみ使用されるため、これらのロールは効果がありません(後で上記のようにログインを有効にしない限り)。