1 /*-------------------------------------------------------------------------
4 * definition of the "authorization identifier" system catalog (pg_authid)
6 * pg_shadow and pg_group are now views on pg_authid.
9 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
10 * Portions Copyright (c) 1994, Regents of the University of California
12 * src/include/catalog/pg_authid.h
15 * The Catalog.pm module reads this file and derives schema
18 *-------------------------------------------------------------------------
23 #include "catalog/genbki.h"
24 #include "catalog/pg_authid_d.h" /* IWYU pragma: export */
27 * pg_authid definition. cpp turns this into
28 * typedef struct FormData_pg_authid
31 CATALOG(pg_authid
,1260,AuthIdRelationId
) BKI_SHARED_RELATION
BKI_ROWTYPE_OID(2842,AuthIdRelation_Rowtype_Id
) BKI_SCHEMA_MACRO
34 NameData rolname
; /* name of role */
35 bool rolsuper
; /* read this field via superuser() only! */
36 bool rolinherit
; /* inherit privileges from other roles? */
37 bool rolcreaterole
; /* allowed to create more roles? */
38 bool rolcreatedb
; /* allowed to create databases? */
39 bool rolcanlogin
; /* allowed to log in as session user? */
40 bool rolreplication
; /* role used for streaming replication */
41 bool rolbypassrls
; /* bypasses row-level security? */
42 int32 rolconnlimit
; /* max connections allowed (-1=no limit) */
44 /* remaining fields may be null; use heap_getattr to read them! */
45 #ifdef CATALOG_VARLEN /* variable-length fields start here */
46 text rolpassword
; /* password, if any */
47 timestamptz rolvaliduntil
; /* password expiration time, if any */
52 * Form_pg_authid corresponds to a pointer to a tuple with
53 * the format of pg_authid relation.
56 typedef FormData_pg_authid
*Form_pg_authid
;
58 DECLARE_UNIQUE_INDEX(pg_authid_rolname_index
, 2676, AuthIdRolnameIndexId
, pg_authid
, btree(rolname name_ops
));
59 DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index
, 2677, AuthIdOidIndexId
, pg_authid
, btree(oid oid_ops
));
61 MAKE_SYSCACHE(AUTHNAME
, pg_authid_rolname_index
, 8);
62 MAKE_SYSCACHE(AUTHOID
, pg_authid_oid_index
, 8);
64 #endif /* PG_AUTHID_H */