{"version":"1.0","provider_name":"Simple Talk","provider_url":"https:\/\/www.red-gate.com\/simple-talk","author_name":"Ryan Booz","author_url":"https:\/\/www.red-gate.com\/simple-talk\/author\/ryan-booz\/","title":"PostgreSQL Roles and Privileges: Users, Groups, GRANT Syntax, PUBLIC Role, and Best Practices","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"VfZt8s1emc\"><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/postgresql\/postgresql-basics-roles-and-privileges\/\">PostgreSQL Roles and Privileges: Users, Groups, GRANT Syntax, PUBLIC Role, and Best Practices<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/postgresql\/postgresql-basics-roles-and-privileges\/embed\/#?secret=VfZt8s1emc\" width=\"600\" height=\"338\" title=\"&#8220;PostgreSQL Roles and Privileges: Users, Groups, GRANT Syntax, PUBLIC Role, and Best Practices&#8221; &#8212; Simple Talk\" data-secret=\"VfZt8s1emc\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.red-gate.com\/simple-talk\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","description":"Complete guide to PostgreSQL roles and privileges - creating user roles and group roles, the PUBLIC role, granting privileges with GRANT, the Principle of Least Privilege, superuser considerations, and best practices for managing permissions across users, applications, and database objects.","thumbnail_url":"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2023\/01\/graphical-user-interface-description-automaticall.png","thumbnail_width":1036,"thumbnail_height":260}