2011-10-13 21 views
15

Bir kullanıcı var: postgresql üzerinde bir veritabanı sahibi ve benzeri herhangi ROLÜ niteliği yoktur user_x (CREATE_DB, süper, ...)postgresql veritabanı sahibi veritabanına erişemiyor - "İlişkiler bulunamadı."

üzerinde (tablo oluşturmak, bütün DB erişebilir Bu user_x onun veritabanı), verileri seçin, ekleyin ve güncelleyin. Verileri dökümü ve başka postgresql sunucusunda geri dek

mydatabase=> \du 
         List of roles 
Role name |   Attributes    | Member of 
-----------+-----------------------------------+----------- 
postgres | Superuser, Create role, Create DB | {} 
user_x |         | {} 

mydatabase=> \d 
         List of relations 
Schema |    Name    | Type | Owner 
--------+-----------------------------------+----------+---------- 
public | addresses       | table | user_x 
public | addresses_id_seq     | sequence | user_x 
public | assignments      | table | user_x 
public | assignments_id_seq    | sequence | user_x 

... 

Pekala:

mydatabase=> \l 
            List of databases 
      Name   | Owner | Encoding | Collation | Ctype | Access privileges 
-------------------------+----------+-----------+-----------+-------+----------------------- 
postgres    | postgres | SQL_ASCII | C   | C  | 
mydatabase    | user_x | UTF8  | C   | C  | 
template0    | postgres | SQL_ASCII | C   | C  | =c/postgres   + 
         |   |   |   |  | postgres=CTc/postgres 
template1    | postgres | SQL_ASCII | C   | C  | =c/postgres   + 
         |   |   |   |  | postgres=CTc/postgres 
whoami     | postgres | SQL_ASCII | C   | C  | 
(6 rows) 

ve aşağıdaki rolleri:

Ben veritabanlarının bu listeyi var.

ithalat sonra psql'in oturum ve (aynı veritabanı adı ve kullanıcı ile) başka bir sunucu üzerinde veri ile d \ komut Cevap: "Hayır ilişkiler buldum."

Yani ithal veritabanı sunucusu üzerinde user_x ve user_x tekrar ilişkiler ve verileri görebilirsiniz Tada için süper rol ekledi.

Ancak user_x'in bu veritabanına erişmek için SUPERUSER ayrıcalığına sahip olması gerekmez.

Bu içe aktarılan döküm ile ilgili sorun nedir? Artık bunu nasıl çözecek biri var mı?

cevap

47

Belki de public şemasının şema izinleri karıştırıldı. Her iki sitede de \dn+ çıktısı nedir?

çıktı aşağıdaki gibi görünmelidir: =UC/postgres parçası eksik

      List of schemas 
    Name | Owner | Access privileges |  Description  
--------+----------+----------------------+------------------------ 
public | postgres | postgres=UC/postgres | standard public schema 
        : =UC/postgres   
(1 row) 

, size sahip olmalıdır

grant all on schema public to public; 
+0

Selam A.H. ninja becerileri ile geri yükleyebilirsiniz. Haklıydın! Erişim ayrıcalıkları boş. – AndreDurao

+3

Ahh, hayatımın 3 saati için, bana bunu geri verdiğin için teşekkürler! – cjauvin

+0

İzindeki 'c' neyi temsil eder, bu yüzden eklenmesini istemediğim tüm izinleri eklemek yerine bunu kendi başıma ekleyebilir miyim? –

İlgili konular