postgresql/src/include/catalog
Stephen Frost b0b39f72b9 GSSAPI encryption support
On both the frontend and backend, prepare for GSSAPI encryption
support by moving common code for error handling into a separate file.
Fix a TODO for handling multiple status messages in the process.
Eliminate the OIDs, which have not been needed for some time.

Add frontend and backend encryption support functions.  Keep the
context initiation for authentication-only separate on both the
frontend and backend in order to avoid concerns about changing the
requested flags to include encryption support.

In postmaster, pull GSSAPI authorization checking into a shared
function.  Also share the initiator name between the encryption and
non-encryption codepaths.

For HBA, add "hostgssenc" and "hostnogssenc" entries that behave
similarly to their SSL counterparts.  "hostgssenc" requires either
"gss", "trust", or "reject" for its authentication.

Similarly, add a "gssencmode" parameter to libpq.  Supported values are
"disable", "require", and "prefer".  Notably, negotiation will only be
attempted if credentials can be acquired.  Move credential acquisition
into its own function to support this behavior.

Add a simple pg_stat_gssapi view similar to pg_stat_ssl, for monitoring
if GSSAPI authentication was used, what principal was used, and if
encryption is being used on the connection.

Finally, add documentation for everything new, and update existing
documentation on connection security.

Thanks to Michael Paquier for the Windows fixes.

Author: Robbie Harwood, with changes to the read/write functions by me.
Reviewed in various forms and at different times by: Michael Paquier,
   Andres Freund, David Steele.
Discussion: https://www.postgresql.org/message-id/flat/jlg1tgq1ktm.fsf@thriss.redhat.com
2019-04-03 15:02:33 -04:00
..
.gitignore Replace our traditional initial-catalog-data format with a better design. 2018-04-08 13:17:27 -04:00
binary_upgrade.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
catalog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
catversion.h Report progress of CREATE INDEX operations 2019-04-02 15:18:08 -03:00
dependency.h REINDEX CONCURRENTLY 2019-03-29 08:26:33 +01:00
duplicate_oids Update copyright for 2019 2019-01-02 12:44:25 -05:00
genbki.h Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
heap.h Generated columns 2019-03-30 08:15:57 +01:00
index.h REINDEX CONCURRENTLY 2019-03-29 08:26:33 +01:00
indexing.h Create a script that can renumber manually-assigned OIDs. 2019-03-12 10:50:48 -04:00
Makefile Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
namespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
objectaccess.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
objectaddress.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
opfam_internal.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
partition.h Add index_get_partition convenience function 2019-03-20 18:18:50 -03:00
pg_aggregate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_aggregate.h Implement OR REPLACE option for CREATE AGGREGATE. 2019-03-19 01:16:50 +00:00
pg_am.dat tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_am.h tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_amop.dat GIN support for @@ and @? jsonpath operators 2019-04-01 18:08:52 +03:00
pg_amop.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_attrdef.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_attribute.h Generated columns 2019-03-30 08:15:57 +01:00
pg_auth_members.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_cast.dat Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
pg_cast.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_class.dat Generated columns 2019-03-30 08:15:57 +01:00
pg_class.h Add BKI_DEFAULT to pg_class.relrewrite 2019-03-14 21:25:39 +01:00
pg_collation.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_collation.h Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
pg_constraint.h Redesign the partition dependency mechanism. 2019-02-11 14:41:17 -05:00
pg_control.h Add basic infrastructure for 64 bit transaction IDs. 2019-03-28 18:12:20 +13:00
pg_conversion.dat Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
pg_conversion.h Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
pg_database.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_database.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_db_role_setting.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_default_acl.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_depend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_description.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_enum.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_event_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_extension.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_data_wrapper.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_server.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_index.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_inherits.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_init_privs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject_metadata.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opclass.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opclass.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_operator.dat Remove ambiguity for jsonb_path_match() and jsonb_path_exists() 2019-03-20 10:30:56 +03:00
pg_operator.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opfamily.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opfamily.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_partitioned_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_policy.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_proc.dat GSSAPI encryption support 2019-04-03 15:02:33 -04:00
pg_proc.h Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
pg_publication_rel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_publication.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_replication_origin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_rewrite.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_seclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_sequence.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdepend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdescription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shseclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_statistic_ext.h Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
pg_statistic.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_subscription_rel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_subscription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_tablespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_tablespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_transform.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_config_map.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config_map.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_parser.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_parser.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_type.dat Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
pg_type.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_user_mapping.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
reformat_dat_file.pl Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
renumber_oids.pl Create a script that can renumber manually-assigned OIDs. 2019-03-12 10:50:48 -04:00
storage_xlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
storage.h tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE. 2019-03-28 20:01:43 -07:00
toasting.h Create a script that can renumber manually-assigned OIDs. 2019-03-12 10:50:48 -04:00
unused_oids Update copyright for 2019 2019-01-02 12:44:25 -05:00