PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

केवल कार्यों को निष्पादित करने के लिए लॉगिन (उपयोगकर्ता) के साथ PostgreSQL 9 भूमिका बनाएं

इसे उस डेटाबेस से कनेक्ट करें जिसे आप कॉन्फ़िगर करना चाहते हैं।

-- Create the user.
CREATE ROLE somebody WITH LOGIN PASSWORD '...';

-- Prevent all authenticated users from being able to use the database,
-- unless they have been explicitly granted permission.
REVOKE ALL PRIVILEGES ON DATABASE foo FROM PUBLIC;
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM PUBLIC;
REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public FROM PUBLIC;
REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM PUBLIC;

-- Allow the user to only use the specified functions.
GRANT CONNECT ON DATABASE foo TO somebody;
GRANT EXECUTE ON FUNCTION return_customers(), return_time() TO somebody;

यदि आपके पास "सार्वजनिक" से अधिक स्कीमा हैं तो आपको उन्हें दो में जोड़ना होगा REVOKE ALL PRIVILEGES ON ALL ... बयान।

यह न भूलें कि फ़ंक्शन SECURITY DEFINER या यह उपयोगकर्ता अभी भी उन्हें निष्पादित करने में असमर्थ होगा, क्योंकि फ़ंक्शन की सामग्री को फ़ंक्शन बनाने वाले उपयोगकर्ता के बजाय इस उपयोगकर्ता की अनुमति से निष्पादित किया जाएगा।

देखें:

  • CREATE FUNCTION विशेष रूप से SECURITY DEFINER
  • GRANT दोनों उपयोगकर्ताओं को भूमिकाओं में जोड़ने के लिए और तालिकाओं, अनुक्रमों, आदि तक पहुंच अधिकार प्रदान करने के लिए
  • REVOKE
  • CREATE ROLE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ईवेंट सोर्सिंग का उपयोग करते समय ईवेंट संग्रहीत करना

  2. PostgreSQL में एक स्ट्रिंग और एक संख्या को संयोजित करें

  3. PostgreSQL में विशेष कॉलम नामों वाले कॉलम चुनें

  4. दो सरणियों की तुलना कैसे करें और केवल गैर मेल खाने वाले तत्वों को चुनें पोस्टग्रेज में

  5. SQL सर्वर 2012:PostgreSQL से लिंक किया गया सर्वर जोड़ें