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

किसी उपयोगकर्ता को किसी फ़ंक्शन को बदलने की अनुमति दें

मैनुअल ALTER FUNCTION पर उस पर स्पष्ट है:

बोल्ड जोर मेरा।
फ़ंक्शन बनाने के लिए आपको कुछ बुनियादी विशेषाधिकारों की भी आवश्यकता होती है। प्रति दस्तावेज़:

इसका आसान समाधान यह होगा कि सुपरयूज़र के रूप में functions कार्यों में परिवर्तन किया जाए . (डिफ़ॉल्ट सुपरयूज़र postgres है , लेकिन कोई भी उपयोगकर्ता कर सकता है सुपरयूज़र बनाया जाए।)

यदि आपको वास्तव में सभी कार्यों पर स्वामित्व बदलने की आवश्यकता है, यह काम करेगा:

SELECT string_agg('ALTER FUNCTION '
            || quote_ident(n.nspname) || '.' 
            || quote_ident(p.proname) || '(' 
            || pg_catalog.pg_get_function_identity_arguments(p.oid)
            || ') OWNER TO foo;'
          , E'\n') AS _sql
FROM   pg_catalog.pg_proc p
JOIN   pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE  n.nspname = 'public';
-- AND p.relowner <> (SELECT oid FROM pg_roles WHERE rolname = 'foo')
-- AND p.proname ~~ 'f_%'

public . तक सीमित स्कीमा।
अधिक विवरण और स्पष्टीकरण के लिए dba.SE पर यह अधिक संपूर्ण उत्तर .
भी निकट से संबंधित:
ड्रॉप फ़ंक्शन बिना पैरामीटर की संख्या/प्रकार को जाने?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL क्वेरी में पंक्ति संख्या कैसे दिखाएं?

  2. django फ़िल्टर में से कम या बराबर और बराबर से अधिक कैसे करें?

  3. Postgresql में डेटाबेस संयोजन बदलें, Ctype

  4. जावा फंक्शन को कॉल करने वाले डीबी ट्रिगर को पोस्टग्रेज करता है

  5. एक postgresql तालिका से गतिशील रूप से एक JSON सरणी तत्व का चयन करने की आवश्यकता है