
{"id":4585,"date":"2023-10-18T08:44:38","date_gmt":"2023-10-18T08:44:38","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=4585"},"modified":"2023-11-21T10:07:41","modified_gmt":"2023-11-21T10:07:41","slug":"new-roles-added-in-postgresql-16","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/","title":{"rendered":"New roles added in PostgreSQL 16"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><strong>Introduction:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog, we&#8217;ll explore one of the significant updates in PostgreSQL 16: the introduction of new and improved roles. Roles are at the heart of PostgreSQL&#8217;s security and access control system, and the latest version brings several changes that promise to refine the way we manage user privileges, access, and authentication. As we delve into these role-related updates, you&#8217;ll discover how PostgreSQL is committed to making your database administration experience more robust, secure, and user-friendly. So, let&#8217;s dive in and unravel the fresh horizons that PostgreSQL 16 roles offer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img fetchpriority=\"high\" decoding=\"async\" width=\"624\" height=\"273\" src=\"https:\/\/lh5.googleusercontent.com\/jSVhyiZlal1is1SaGGiphvDHNPAt6_8dQLRjGEpR5O5fdpqfsugA8AM1hRJtzD1w5goxtqvRYzwZNmmviU52h-1ad4GKCzZwtaFKOlvtL1u09PL7Sov-RjjerFCylxDBdTTu5s4D0e1Z6eJWKcrkLiQ\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>pg_use_reserved_connections:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before Pg-16, there was no way to allocate connections to one or more users unless they were configured as superusers. As a DBA, most of us have encountered situations where a company executive or a database developer was not able to gain access to the database on a hectic day. When such a situation arose, the attending DBA had two options in front of him:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Have some other user(s) log out of the database so that the freed-up connection can be utilized by the company executive.<\/li>\n\n\n\n<li> Add the company executive or developer to the list of superusers.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">While these options are able to handle the situation, these approaches are not very elegant so to speak, and not recommended (especially #2) from an IT best practices perspective.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the introduction of the &#8216;<code>pg_use_reserved_connections<\/code>&#8216; role in Pg 16, the superusers now have the option to reserve a set of connections specifically for critical users like the company executives, database developers, department heads or core team members within each functional group &#8211; ensuring that they always have access to the database even if they are not part of the superuser group.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pg_use_reserved_connections allows the use of connection slots reserved via reserved_connections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The reserved_connections parameter determines the number of connection \u201cslots\u201d that are reserved for connections by roles with privileges of the pg_use_reserved_connections role. Whenever the number of free connection slots is greater than superuser_reserved_connections but less than or equal to the sum of superuser_reserved_connections and reserved_connections, new connections will be accepted only for superusers and roles with privileges of pg_use_reserved_connections. If superuser_reserved_connections or fewer connection slots are available, new connections will be accepted only for superusers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The default value reserved_connections&nbsp; is zero connections. The value must be less than max_connections minus superuser_reserved_connections. This parameter can only be set at the server start.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In this example, I have set parameters in postgresql.conf file as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>max_connections = 5               \nreserved_connections = 1          \nsuperuser_reserved_connections = 0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We have set &#8216;superuser_reserved_connections&#8217; to zero to ensure it does not interfere with our testing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here, I am creating a user named &#8216;<code>reserved_user<\/code>&#8216; as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres=# create user reserved_user with password 'password';\nCREATE ROLE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"570\" height=\"42\" src=\"https:\/\/lh5.googleusercontent.com\/VJpgiDoS0Hx9ekL6FIjJG9K7AB_h5WMjJ9y2d-QdObfpZQQGiIlKeC893sFISI2YL20yNimGGQlbc3zEiteNyhWAR7fZ6v5yFgET0z7aZQBgiRd2injXlCU2FJgH69chHW7So1WgnufcykgSeuaHbH4fwTEfQFdv\" alt=\"C:\\Users\\lenovo\\Downloads\\Screenshot from 2023-10-17 12-13-20.png\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, connect using the &#8216;<code>reserved_user<\/code>&#8216; to database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres@localhost:~$ psql -U reserved_user -d postgres\nPassword for user reserved_user: \npsql (16.0 (Ubuntu 16.0-1.pgdg22.04+1))\npostgres=&gt; <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">From four other terminals, we will repeat the previous command for testing.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres@localhost:~$ psql -U reserved_user -d postgres\nPassword for user reserved_user: \npsql: error: connection to server on socket \"\/var\/run\/postgresql\/.s.PGSQL.5432\" failed: FATAL:  remaining connection slots are reserved for roles with privileges of the \"pg_use_reserved_connections\" role<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Log in as the superuser and grant permissions to the &#8216;<code>reserved_user'<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres@localhost:~$ psql -U postgres -d postgres\npostgres=# grant pg_use_reserved_connections to reserved_user;\nGRANT ROLE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"570\" height=\"42\" src=\"https:\/\/lh5.googleusercontent.com\/wqCH3Q5MuqZChG8gAdlKjULn1FIV04uTdD3ThMf51ShYx8LG9L8lmYjrzVbxJlE9bWXrT0JOs9sLj1j4mTgik-vhScQY7qSccWt7e2XDLY59AwJ4oge_PNaGcS0U7mO1vBuJLOOyIV3Wj0yF1daKoiB-h2R4eBrw\" alt=\"C:\\Users\\lenovo\\Downloads\\Screenshot from 2023-10-17 12-24-42.png\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now try to connect reserverd_user and we can establish the fifth session:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres@localhost:~$ psql -U reserved_user -d postgres\nPassword for user reserved_user: \npsql (16.0 (Ubuntu 16.0-1.pgdg22.04+1))\nType \"help\" for help.\npostgres=&gt; <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now we can successfully establish the 5<sup>th<\/sup> connection.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>pg_create_subscription :<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Allow users with <code>CREATE<\/code> permission on the database to issue <code>CREATE SUBSCRIPTION<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non-superusers can create subscriptions. The non-superusers must have been granted a pg_create_subscription role, and are required to specify a password for authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Superusers can set password_required = false for non-superusers who own the subscription.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Example:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres=# select version();\n                               version\n----------------------------------------------------------------\nPostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), 64-bit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Here, I am creating a user named &#8216;<code>testuser<\/code>&#8216; as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres=# create user testuser with password 'password' ;\nCREATE ROLE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Log in as the superuser and grant permissions to the &#8216;<code>testuser<\/code>&#8216;.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres=# GRANT pg_create_subscription TO testuser ;\nGRANT ROLE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"430\" height=\"74\" src=\"https:\/\/lh4.googleusercontent.com\/d2KIA9cpIfvEkIuGXfqfguaq2BWTCKuKlTJ5U49Np2H7FtJMp0jv0sCFK0_iSXMl593tNhGhXN0S55x45TgWkg78mBXbDDCh9OAHdU6MRByPUVaBNUlSMwaX2vYP78ioyOroTqF-IqF8htRMglJnWzLQiGcTYCo0\" alt=\"C:\\Users\\lenovo\\Pictures\\Screenshots\\pg16_create&amp;grant_testuser.png\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, connect using the &#8216;<code>testuser<\/code>&#8216; to osdb database.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres=# \\c osdb testuser \nPassword for user testuser:\nYou are now connected to database \"osdb\" as user \"testuser\".<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>osdb=&gt; CREATE SUBSCRIPTION testsub CONNECTION 'host=192.168.113.209 port=5432 user=repuser dbname=osdb'\nPUBLICATION testpub ;\nERROR:  password is required\nDETAIL:  Non-superusers must provide a password in the connection string.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"50\" src=\"https:\/\/lh5.googleusercontent.com\/wtJ8gt9vvXIcIsCG03zeLRbmaQbm3s4EGvHBfYQUf5iDgCE74w2xhrDnKEI2fmwEU7OUa2K6_T6pUM5jauhQUDsvmmaGhxPQrWdZPazvh4LmOjADoD-3wcGTp2Hg0LdGAR3RqDV07UpscbgmMMXGsvQq4O91UFuW\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>osdb=&gt; CREATE SUBSCRIPTION testsub CONNECTION 'host=192.168.113.209 port=5432 user=repuser dbname=osdb'\nPUBLICATION testpub WITH (password_required=false); \nERROR: password_required=false is superuser-only\nHINT:  Subscriptions with the password_required option set to false may only be created or modified by the superuser.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"73\" src=\"https:\/\/lh3.googleusercontent.com\/hHq5Qap9-tnv9EX0hNXidug_kyy-CklFVVrJAqsMUdg6UwzzyUBNHS23C8mQE0U61nDgdN2AgCgj_DPfdOZDIJ34OSYG52vFMc5L4Gi7vbxtaZM0ie2wQ9_btLzpmgXPRwWRYNH5oq3neWZ8PHT952yqfaiWCsb6\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>osdb=&gt; CREATE SUBSCRIPTION testsub CONNECTION 'host=192.168.113.209 port=5432 user=repuser password=postgres dbname=osdb'\nPUBLICATION testpub WITH (connect=false);\nWARNING:  subscription was created, but is not connected\nHINT:  To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.\nCREATE SUBSCRIPTION<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"67\" src=\"https:\/\/lh4.googleusercontent.com\/KNPGRd-DgizCCUmgFGL1MJR3HDlU7cKAXg_5YkVv6WjG3mluw-k8AiLyruXsnQ2q0PJNDhDeu7Y3jbQgYvX02u3dmbz53W-33RzEZtww4Sz69sG1bioqg35u7B0hBMi5Jyw-EnR4YHs6G73T9BCdqC8\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: In this blog, we&#8217;ll explore one of the significant updates in PostgreSQL 16: the introduction of new and improved [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":4592,"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":[],"class_list":["post-4585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql-14","category-postgresql-15","category-postgresql-16"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>New roles added in PostgreSQL 16 - 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=\"New roles added in PostgreSQL 16 - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"Introduction: In this blog, we&#8217;ll explore one of the significant updates in PostgreSQL 16: the introduction of new and improved [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\" \/>\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-18T08:44:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-21T10:07:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/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\/new-roles-added-in-postgresql-16\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\"},\"author\":{\"name\":\"Venkat Akhil\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328\"},\"headline\":\"New roles added in PostgreSQL 16\",\"datePublished\":\"2023-10-18T08:44:38+00:00\",\"dateModified\":\"2023-11-21T10:07:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\"},\"wordCount\":588,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png\",\"articleSection\":[\"PostgreSQL 14\",\"PostgreSQL 15\",\"PostgreSQL 16\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\",\"name\":\"New roles added in PostgreSQL 16 - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png\",\"datePublished\":\"2023-10-18T08:44:38+00:00\",\"dateModified\":\"2023-11-21T10:07:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png\",\"width\":512,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New roles added in PostgreSQL 16\"}]},{\"@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":"New roles added in PostgreSQL 16 - 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":"New roles added in PostgreSQL 16 - OpenSource DB","og_description":"Introduction: In this blog, we&#8217;ll explore one of the significant updates in PostgreSQL 16: the introduction of new and improved [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2023-10-18T08:44:38+00:00","article_modified_time":"2023-11-21T10:07:41+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png","type":"image\/png"}],"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\/new-roles-added-in-postgresql-16\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/"},"author":{"name":"Venkat Akhil","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328"},"headline":"New roles added in PostgreSQL 16","datePublished":"2023-10-18T08:44:38+00:00","dateModified":"2023-11-21T10:07:41+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/"},"wordCount":588,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png","articleSection":["PostgreSQL 14","PostgreSQL 15","PostgreSQL 16"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/","url":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/","name":"New roles added in PostgreSQL 16 - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png","datePublished":"2023-10-18T08:44:38+00:00","dateModified":"2023-11-21T10:07:41+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png","width":512,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/new-roles-added-in-postgresql-16\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"New roles added in PostgreSQL 16"}]},{"@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":{"full":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"portraits":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"thumbnail":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161-150x150.png",150,150,true],"medium":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161-300x300.png",300,300,true],"large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"1536x1536":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"2048x2048":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"ultp_layout_landscape_large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"ultp_layout_landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"ultp_layout_portrait":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false],"ultp_layout_square":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/10\/New-roles-added-in-PostgreSQL-161.png",512,512,false]},"rttpg_author":{"display_name":"Venkat Akhil","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/"},"rttpg_comment":2,"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":"Introduction: In this blog, we&#8217;ll explore one of the significant updates in PostgreSQL 16: the introduction of new and improved [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4585","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=4585"}],"version-history":[{"count":8,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4585\/revisions"}],"predecessor-version":[{"id":4853,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4585\/revisions\/4853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media\/4592"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=4585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=4585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=4585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}