他のバージョンの文書10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

51.8. pg_authid

pg_authidカタログはデータベース認証識別子(ロール)の情報を保持します。 ロールはユーザグループの概念を包括しています。 ユーザは本質的にrolcanloginフラグセットを持ったロールです。 どのようなロール(rolcanloginを持っている、持っていないに関わらず)も他のロールをメンバとして持っていても構いません。 pg_auth_membersを参照してください。

このカタログはパスワードを含んでいるため、第三者が内容を読むことができないようにしなければいけません。 pg_rolesは、pg_authidのビューで、パスワードのフィールドは空白となっていますので内容を読み取ることができます。

第21章でユーザと権限管理に関するより詳細について説明します。

ユーザの本人確認はクラスタ全体にわたる情報ですので、pg_authidはクラスタのすべてのデータベースで共有されます。 データベース毎ではなく、クラスタ毎にたった1つだけpg_authidが存在します。

表51.8 pg_authidの列

名前説明
oidoid行識別子(隠し属性です。明示的に選択しなければなりません)
rolnamenameロール名
rolsuperboolロールはスーパーユーザの権限を持っています
rolinheritboolロールは自動的にメンバとして属するロールの権限を継承します
rolcreateroleboolロールはロールを作成することができます
rolcreatedbboolロールはデータベースを作成することができます
rolcanloginboolロールはログインすることができます。つまりロールはセッションを始める認証の識別子となることができます
rolreplicationboolロールはレプリケーション用のロールです。 レプリケーションロールは、レプリケーション接続を開始すること、およびレプリケーションスロットを作成および削除することができます。
rolbypassrlsboolすべての行単位セキュリティポリシーを無視するロール。詳しくは5.7を参照してください。
rolconnlimitint4ログイン可能なロールでは、これはロールが確立できる同時実行接続数を設定します。 -1は制限無しを意味します。
rolpasswordtext(おそらく暗号化された)パスワード。無い場合はNULLです。 書式は使用される暗号化の形式に依存します。
rolvaliduntiltimestamptzパスワード有効期限(パスワード認証でのみ使用)。 NULLの場合には満了時間はありません。

MD5で暗号化されたパスワードでは、rolpassword列は文字列md5で始まり、それに32文字の16進MD5ハッシュ値が続きます。 MD5ハッシュは、ユーザのパスワードとユーザ名を繋げたものに対して生成されます。 例えばjoeのパスワードがxyzzyなら、PostgreSQLxyzzyjoeのMD5ハッシュを格納します。

パスワードがSCRAM-SHA-256で暗号化される場合、次の書式になります。

SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>

ここで、saltStoredKeyServerKeyはBase64の符号化書式に従います。 この書式はRFC 5803で指定されているものと同じです。

これらのいずれの書式にも従っていないパスワードは、暗号化されていないものとみなされます。