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

postgresql 9.1 - फ़ंक्शन के माध्यम से एक्सेस टेबल

हाँ, यह संभव है।

"सुपरयूज़र" एक वास्तविक superuser हो सकता है , postgres डिफ़ॉल्ट रूप से। मैं सादे उपयोगकर्ताओं के लिए भूमिका का नाम बदलकर usr कर देता हूं , क्योंकि user एक आरक्षित शब्द है - इसे पहचानकर्ता के रूप में प्रयोग न करें।

CREATE ROLE usr;
CREATE ROLE poweruser;
GRANT usr TO poweruser;  -- poweruser can do everything usr can.

CREATE ROLE bob PASSWORD <password>;
GRANT poweruser TO bob;

CREATE ROLE alice PASSWORD <password>;
GRANT usr TO alice;

REVOKE ALL ON SCHEMA x FROM public;
GRANT USAGE ON SCHEMA x TO usr;

REVOKE ALL ON TABLE x FROM public;
REVOKE ALL ON TABLE y FROM public;

CREATE FUNCTION
  ...
SECURITY DEFINER;

REVOKE ALL ON FUNCTION ... FROM public;
GRANT EXECUTE ON FUNCTION a TO usr;
GRANT EXECUTE ON FUNCTION b TO poweruser;

या आप कार्यों के मालिक होने और टेबल पर संबंधित अधिकारों को रखने के लिए बिना लॉगिन के डेमॉन भूमिकाएँ बना सकते हैं। यह और भी सुरक्षित होगा।

अगर आप इस रास्ते पर जा रहे हैं, तो आप प्यार . करेंगे ALTER DEFAULT PRIVILEGES (पोस्टग्रेएसक्यूएल 9.0 के साथ पेश किया गया)। इस संबंधित उत्तर में अधिक विवरण

अध्याय पढ़ें लेखन SECURITY DEFINER सुरक्षित रूप से कार्य करता है मैनुअल में।




  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. सेकेंडरी टेबल ऑटो-इंक्रीमेंट सीक्वेंस में इंसर्ट करने के लिए रूल का इस्तेमाल करना

  4. जैंगो। पोस्टग्रेएसक्यूएल। regexp_split_to_table काम नहीं कर रहा

  5. मैं .net कोर प्रोजेक्ट में सिग्नलआर कोर के साथ पोस्टग्रेस्क्ल डेटाबेस कैसे सुन सकता हूं?