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

यदि सर्वर dblink का उपयोग करते समय पासवर्ड का अनुरोध नहीं करता है तो गैर-सुपरयूज़र कनेक्ट नहीं हो सकता है

दस्तावेज़ीकरण से :

और

इसका मतलब है कि आपका dblink कॉल dblink_connect का उपयोग कर रहा है परोक्ष रूप से। dblink_connect_u का उपयोग करें इसके बजाय या अपनी प्रामाणिक विधि को उदा। एमडी5.

ध्यान दें कि आपको caixa . के लिए अनुदान निष्पादन विशेषाधिकार की भी आवश्यकता है भूमिका, उदाहरण के लिए:

GRANT EXECUTE ON FUNCTION dblink_connect_u(text) TO caixa;
GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO caixa;

कार्य उदाहरण (GRANT . के बाद) ):

meta=> SELECT dblink_connect_u('conn1', 'dbname=op');
meta=> SELECT * FROM dblink('conn1','SELECT op_col from op_table')
            AS t(op_col varchar);
 op_col 
--------
 aaa
 bbb
 ccc
(3 rows)
meta=> SELECT dblink_disconnect('conn1');

संपादित करें:

थोड़ा भ्रामक उत्तर के लिए क्षमा करें। बेशक आप नहीं जरूरत dblink_connect_u एमडी 5 प्रमाणित कनेक्शन के लिए। एक संभावना है जो मुझे दिखाई दे रही है। PostgreSQL में दो अलग हैं कनेक्शन प्रकार:होस्ट और स्थानीय

चल रहा है:

psql -h localhost ..

होस्ट कनेक्शन शामिल है, लेकिन

dblink_connect('mycon','dbname=vchitta_op user=caixa password=caixa');

स्थानीय . का उपयोग करता है टाइप करें, इसलिए यदि आपके पास स्थानीय कनेक्शन के लिए गैर-पासवर्ड विधि है (उदाहरण के लिए पहचान विधि या ट्रस्ट), तो यह वापस आती है

ERROR:  password is required
DETAIL:  Non-superuser cannot connect if the server does not request a password.
HINT:  Target server's authentication method must be changed.

चेक करें

dblink_connect('mycon','hostaddr=127.0.0.1 dbname=vchitta_op user=caixa password=caixa')

होस्ट . के लिए कनेक्शन। यदि संभव हो तो स्पष्टता के लिए कृपया अपना pg_hba.conf पोस्ट करें ।

मैंने यह भी जांचा कि CONNECT के बारे में क्या है vchitta_op . पर विशेषाधिकार DB, लेकिन त्रुटि संदेश अलग है:

REVOKE CONNECT ON DATABASE vchitta_op FROM PUBLIC;
REVOKE CONNECT ON DATABASE vchitta_op FROM caixa;

SELECT dblink_connect('mycon','dbname=vchitta_op user=caixa password=caixa');
ERROR:  could not establish connection
DETAIL:  FATAL:  permission denied for database "vchitta_op"
DETAIL:  User does not have CONNECT privilege.


  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 ऐप के साथ Django सिंक नहीं कर रहा है

  2. बहु-आयामी सरणी को एकत्रित करने के लिए फ़ंक्शन में प्रारंभिक सरणी

  3. jsonb फ़ील्ड पर अनुक्रमणिका जोड़ें

  4. रेल 3, will_paginate, यादृच्छिक, दोहराए जाने वाले रिकॉर्ड, पोस्टग्रेज, सेटसीड विफलता

  5. स्थानीयहोस्ट पर सीजीआई-बिन चलाते समय आयात त्रुटि - अपरिभाषित प्रतीक:lo_truncate64