
{"id":4518,"date":"2023-10-04T09:11:48","date_gmt":"2023-10-04T09:11:48","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=4518"},"modified":"2023-10-18T05:18:23","modified_gmt":"2023-10-18T05:18:23","slug":"unleashing-pg16-new-features-pghba-features","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/","title":{"rendered":"Unleashing PG16 New Features &#8211; pgHBA Features"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png\" alt=\"\" class=\"wp-image-4524\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png 1024w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-300x157.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-768x401.png 768w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-189x99.png 189w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-153x80.png 153w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-394x206.png 394w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-915x478.png 915w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In our journey through the ever-evolving landscape of PostgreSQL, last week, we embarked on an exciting exploration of the newest and most intriguing features that PostgreSQL 16 has to offer. Our goal was to delve deep into the core features of the PostgreSQL 16 version. If you missed our first post in the series, fear not and <a href=\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-blog-series\/\" target=\"_blank\" rel=\"noreferrer noopener\">Click here<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For today, we continue our voyage by delving further into the HBA changes introduced in PostgreSQL 16. This feature is at the core of making pg_hba.conf and pg_ident.conf more in line with postgresql.conf, even if the parsing logic of the first two is not the same as the third one as GUCs require their own thing, while HBA and ident files need to handle full entries made of a sequence of items.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prior to delving into the details of these two features, we want to express our sincere gratitude to <a href=\"https:\/\/github.com\/rjuju\" target=\"_blank\" rel=\"noreferrer noopener\">Julien Rouhaud<\/a> <a href=\"https:\/\/paquier.xyz\/\" target=\"_blank\" rel=\"noreferrer noopener\">Michael Paquier<\/a> and a few more PG Community members for their invaluable contributions to this feature in PG16.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Commit URL: <a href=\"https:\/\/github.com\/postgres\/postgres\/commit\/a54b658c\">https:\/\/github.com\/postgres\/postgres\/commit\/a54b658c<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Include directives for pg_hba.conf and pg_ident.conf:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As you know, in PostgreSQL, the pg_hba.conf file is used to define access control rules for client connections and the pg_ident.conf file is used to map system usernames to database usernames. This new change is primarily around the pg_hba_file_rules system catalog view. pg_hba_file_rules provides an interpretation of the current contents of pg_hba.conf, and whether they can be parsed. This view has been in existence since PG10. The configuration files pg_hba.conf and pg_ident.conf, as well as postgresql.conf, now support the directives to include other files: include, include_if_exists, include_dir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Columns containing the file name and rule\/map number have been added to pg_hba_file_rules and pg_ident_file_mappings<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s how we can use the include directives:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>include:<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The include directive allows you to include another file in your configuration. For example, in pg_hba.conf, you can include rules from another file like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include '\/path\/to\/another\/pg_hba.conf'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This allows you to split your configuration into multiple files for better organization<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>include_if_exists:<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The include_if_exists directive is similar to include, but it only includes the specified file if it exists. This can be useful if you want to include optional configuration files. For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include_if_exists '\/path\/to\/optional\/pg_hba.conf<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>include_dir:<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The include_dir directive allows you to include all files within a specified directory. This can be helpful for managing a large number of configuration files. For example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include_dir '\/path\/to\/directory'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">PostgreSQL will read all the files in the specified directory as if they were part of the main configuration file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These directives can help you organize and modularize your PostgreSQL configuration, making it easier to maintain and manage complex setups.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please note that the specific file paths and directory paths should be adjusted according to your system&#8217;s file structure. Additionally, it&#8217;s essential to ensure that the PostgreSQL server process has appropriate permissions to read the included files or directories.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Commit URL: <a href=\"https:\/\/github.com\/postgres\/postgres\/commit\/8fea8683\">https:\/\/github.com\/postgres\/postgres\/commit\/8fea8683<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regular expression matching in pg_hba.conf and pg_ident.conf:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PostgreSQL 16 provides several options for access control and enhances other security features. This release improves the management of pg_hba.conf and pg_ident.conf files, including allowing regular expression matching for user and database names and including directives for external configuration files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both pg_hba.conf and pg_ident.conf allows for regular expression matching on usernames. pg_hba.conf also supports regular expression matching on database names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, the format of the file is simple. There are two types of config lines:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>local \tDATABASE \tUSER \t\t\tMETHOD &#91;OPTIONS]\nhost \tDATABASE \tUSER \tADDRESS \tMETHOD &#91;OPTIONS]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the USER field, you have more options:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">username<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">group name (role) prefixed with + sign<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">name of file that contains a list of usernames, prefixed with @ <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and, of course, you can have any number of these elements, separated by a comma.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>For example:<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>local db1 osdbuser,postgres,+osdb,@\/etc\/postgres\/cron.users.lst trust<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>I could use regular expressions in the USER field, for example like this:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>host all \/-rw$ 192.168.2.0\/24 scram-sha-256\nhost all \/-ro$ 192.0.0.0\/8  scram-sha-256<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This would allow any user with a name ending with -rw to log in, as long as they connect from ip being one of 192.168.2.*, and any user with a name ending with -ro from ip that is one of 192.*.*.*.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog post, we explored some exciting pg_hba features introduced in PostgreSQL 16, showcasing its ongoing commitment to security enhancements. Stay tuned for more insights into the world of PostgreSQL 16 New features, as we continue to uncover the latest advancements in upcoming blogs. Your feedback and engagement are greatly appreciated, so please feel free to share your thoughts and questions in the comments below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our journey through the ever-evolving landscape of PostgreSQL, last week, we embarked on an exciting exploration of the newest [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[23,42,89],"tags":[27,26],"class_list":["post-4518","post","type-post","status-publish","format-standard","hentry","category-postgresql-14","category-postgresql-15","category-postgresql-16","tag-new-features","tag-postgresql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Unleashing PG16 New Features - pgHBA Features - OpenSource DB<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unleashing PG16 New Features - pgHBA Features - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"In our journey through the ever-evolving landscape of PostgreSQL, last week, we embarked on an exciting exploration of the newest [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenSource DB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-04T09:11:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-18T05:18:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png\" \/>\n<meta name=\"author\" content=\"Venkat Akhil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:site\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Venkat Akhil\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\"},\"author\":{\"name\":\"Venkat Akhil\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328\"},\"headline\":\"Unleashing PG16 New Features &#8211; pgHBA Features\",\"datePublished\":\"2023-10-04T09:11:48+00:00\",\"dateModified\":\"2023-10-18T05:18:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\"},\"wordCount\":790,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png\",\"keywords\":[\"new-features\",\"postgresql\"],\"articleSection\":[\"PostgreSQL 14\",\"PostgreSQL 15\",\"PostgreSQL 16\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\",\"name\":\"Unleashing PG16 New Features - pgHBA Features - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png\",\"datePublished\":\"2023-10-04T09:11:48+00:00\",\"dateModified\":\"2023-10-18T05:18:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1.png\",\"width\":1200,\"height\":627},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unleashing PG16 New Features &#8211; pgHBA Features\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"name\":\"OpenSource DB\",\"description\":\"Your Trusted OpenSource Databases partner\",\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\",\"name\":\"OPENSOURCE DB PRIVATE LIMITED\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"width\":368,\"height\":120,\"caption\":\"OPENSOURCE DB PRIVATE LIMITED\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\",\"https:\/\/x.com\/opensource_db\",\"https:\/\/www.youtube.com\/channel\/UCmTI5h\",\"https:\/\/www.linkedin.com\/company\/opensource-db\",\"https:\/\/www.instagram.com\/opensource_db\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328\",\"name\":\"Venkat Akhil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g\",\"caption\":\"Venkat Akhil\"},\"url\":\"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unleashing PG16 New Features - pgHBA Features - OpenSource DB","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Unleashing PG16 New Features - pgHBA Features - OpenSource DB","og_description":"In our journey through the ever-evolving landscape of PostgreSQL, last week, we embarked on an exciting exploration of the newest [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2023-10-04T09:11:48+00:00","article_modified_time":"2023-10-18T05:18:23+00:00","og_image":[{"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png","type":"","width":"","height":""}],"author":"Venkat Akhil","twitter_card":"summary_large_image","twitter_creator":"@opensource_db","twitter_site":"@opensource_db","twitter_misc":{"Written by":"Venkat Akhil","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/"},"author":{"name":"Venkat Akhil","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328"},"headline":"Unleashing PG16 New Features &#8211; pgHBA Features","datePublished":"2023-10-04T09:11:48+00:00","dateModified":"2023-10-18T05:18:23+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/"},"wordCount":790,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png","keywords":["new-features","postgresql"],"articleSection":["PostgreSQL 14","PostgreSQL 15","PostgreSQL 16"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/","url":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/","name":"Unleashing PG16 New Features - pgHBA Features - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1-1024x535.png","datePublished":"2023-10-04T09:11:48+00:00","dateModified":"2023-10-18T05:18:23+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/pg16-new-features-blog-image1.png","width":1200,"height":627},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/unleashing-pg16-new-features-pghba-features\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"Unleashing PG16 New Features &#8211; pgHBA Features"}]},{"@type":"WebSite","@id":"https:\/\/test.opensource-db.in\/wp1\/#website","url":"https:\/\/test.opensource-db.in\/wp1\/","name":"OpenSource DB","description":"Your Trusted OpenSource Databases partner","publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/test.opensource-db.in\/wp1\/#organization","name":"OPENSOURCE DB PRIVATE LIMITED","url":"https:\/\/test.opensource-db.in\/wp1\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","width":368,"height":120,"caption":"OPENSOURCE DB PRIVATE LIMITED"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","https:\/\/x.com\/opensource_db","https:\/\/www.youtube.com\/channel\/UCmTI5h","https:\/\/www.linkedin.com\/company\/opensource-db","https:\/\/www.instagram.com\/opensource_db\/"]},{"@type":"Person","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328","name":"Venkat Akhil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g","caption":"Venkat Akhil"},"url":"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Venkat Akhil","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-14\/\" rel=\"category tag\">PostgreSQL 14<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-15\/\" rel=\"category tag\">PostgreSQL 15<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-16\/\" rel=\"category tag\">PostgreSQL 16<\/a>","rttpg_excerpt":"In our journey through the ever-evolving landscape of PostgreSQL, last week, we embarked on an exciting exploration of the newest [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/comments?post=4518"}],"version-history":[{"count":4,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4518\/revisions"}],"predecessor-version":[{"id":4525,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4518\/revisions\/4525"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=4518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=4518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=4518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}