45.8. pg_authid

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

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

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

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

表 45-8. pg_authidの列

名前説明
rolnamenameロール名
rolsuperboolロールはスーパーユーザの権限を持っています
rolinheritboolロールは自動的にメンバとして属するロールの権限を継承します
rolcreateroleboolロールはロールを作成することができます
rolcreatedbboolロールはデータベースを作成することができます
rolcatupdateboolロールはシステムカタログを直接更新することができます(スーパーユーザであってもここが真でなければ更新不可)
rolcanloginboolロールはログインすることができます。つまりロールはセッションを始める認証の識別子となることができます
rolreplicationboolロールはレプリケーション用のロールです。 つまり、このロールはストリーミングレプリケーション(項25.2.5参照)を初期化すること、および、pg_start_backuppg_stop_backupを使用してシステムのバックアップモードを設定/解除することができます。
rolconnlimitint4ログイン可能なロールでは、これはロールが確立できる同時実行接続数を設定します。 -1は制限無しを意味します。
rolpasswordtext(おそらく暗号化された)パスワード。無い場合はNULLです。 パスワードが暗号化された場合、この列にはmd5という文字列の後に32文字の16進数表記のMD5ハッシュが含まれます。 MD5ハッシュはユーザのパスワードとユーザ名を連結したものになります 例えばユーザjoeのパスワードがxyzzyの場合、PostgreSQLxyzzyjoeをMD5でハッシュ化したものを格納します。 この書式に従わないパスワードは暗号化されていないとみなされます。
rolvaliduntiltimestamptzパスワード有効期限(パスワード認証でのみ使用)。 NULLの場合には満了時間はありません。