मैं PostgreSQL के साथ एक बहुत ही कष्टप्रद भूमिका विरासत मुद्दा में भाग गया। यह व्यवहार नहीं करता है क्योंकि यह documentation के अनुसार होना चाहिए।PostgreSQL भूमिका विरासत काम नहीं कर रहा है?
मैं एक मास्टर भूमिका निभाना चाहता हूं, और नए बनाए गए उपयोगकर्ताओं को इसकी अनुमति देना चाहता हूं। इन उपयोगकर्ताओं को मैन्युअल रूप से SET ROLE
जारी किए बिना अनुमतियों का उत्तराधिकारी होना चाहिए।
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
अब के बाद मैं testuser
के रूप में कनेक्ट करते हैं, मैं निम्नलिखित मिलती है: (इनहेरिट विकल्प की वजह से) ऊपर लिंक डॉक्स के अनुसार
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
, SET ROLE
की आवश्यकता नहीं किया जाना चाहिए।
मुझे यहां क्या याद आ रही है?