3

リモート PostgreSQL データベースを表示するために pgAdmin または Navicat でログインすると、問題なく接続でき、以下のリストの最初の 3 つのデータベースが正常に表示されます。しかし、何らかの理由で、最後の 2 つのデータベース (「template0」と「template1」) を他のデータベースと共に表示することができません。また、サーバーのデータベースに ssh 接続すると、「SELECT * FROM a_table_in_template1_database;」を実行できます。テーブルのすべての内容が問題なく表示されるので、データベースとその中のテーブルに問題がないことがわかります。「template1」データベースをこのリストに表示して機能させるにはどうすればよいですか? 「\ list」を実行したときのターミナルからのPostgreSQLの出力は次のとおりです。

template1=# \list
                                List of databases
     Name      |  Owner   | Encoding | Collation | Ctype |   Access privileges   
---------------+----------+----------+-----------+-------+-----------------------
 mygigline     | jball037 | LATIN1   | en_US     | en_US | 
 mygiglinemain | postgres | LATIN1   | en_US     | en_US | 
 postgres      | postgres | LATIN1   | en_US     | en_US | 
 template0     | postgres | LATIN1   | en_US     | en_US | =c/postgres
 template1     | postgres | LATIN1   | en_US     | en_US | =CTc/postgres
                                                         : postgres=CTc/postgres
(5 rows)

これを引き起こしている「アクセス権限」に何かがあるようです。ただし、「データベースのすべてのテンプレート 1 を postgres に付与する」などのことを実行しましたが、それは役に立たないようです。

もう 1 つの役立つ情報: Navicat でログインして 3 つのデータベースが表示されたら、[データベースを開く] オプションをクリックして、「template1」と入力すると、左側のパネルに、他の 3 つのデータベースがありますが、それをクリックすることも、何もすることもできません。

5 つのデータベースすべてが Navicat または pgAdmin に表示され、それらすべてにアクセスできるようにしたいだけです :) どんな助けも大歓迎です!

4

1 に答える 1

2

これらのツールは、通常のユーザー データベースではなく「内部」データベースと見なされるため、データベースを非表示にする傾向がありpg_database.datistemplateます。true

クライアント アプリケーションは、これらの DB を再表示する設定を提供するか、名前で直接開くことができる場合があります。

template0は通常、変更できない読み取り専用データベースであるため、管理 UI でアクセスする意味はほとんどありません。接続して変更することはできますが、新しいデータベースを作成するときに (明示的なオプションなしで)template1何を行ってもコピーされるため、通常は変更したくありません。template1TEMPLATE

template0とを無視することを強くお勧めしますtemplate1。それらが存在しないふりをします。

于 2013-04-02T00:20:27.910 に答える