Некоторые базы данных PostgreSQL не видны через такие клиенты, как Navicat или pgAdmin



Когда я вхожу в систему, чтобы увидеть мои удаленные базы данных PostgreSQL с помощью pgAdmin или Navicat, я могу подключиться без каких-либо проблем, и первые три базы данных в списке ниже отображаются нормально. Но по какой-то причине я не могу получить две последние базы данных ("template0" и "template1"), чтобы показать их вместе с другими. Кроме того, когда я ssh в базу данных сервера, я могу запустить "SELECT * FROM a_table_in_template1_database;" и он показывает все содержимое таблицы без проблем, так что я знаю, что все в порядке с база данных и таблицы внутри нее. Как я могу заставить базу данных "template1" появиться в этом списке и работать? Вот вывод PostgreSQL из терминала, когда я запускаю "list":



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)


Похоже, что есть что-то с "правами доступа", что вызывает это. Тем не менее, я сделал такие вещи, как "GRANT ALL ON DATABASE template1 to postgres", но это, кажется, не помогает.



Еще одна полезная информация: когда я вхожу в систему с Navicat и появляются три базы данных, я можно щелкнуть опцию "Открыть базу данных", затем я наберу" template1", и он появится на левой панели вместе с другими тремя базами данных, но я не могу нажать на него или что-либо с ним сделать.



Я просто хочу, чтобы все 5 моих баз данных отображались в Navicat или pgAdmin и могли получить доступ ко всем из них :) любая помощь была бы очень признательна!

1404   1  

1 ответ:

Эти инструменты, как правило, скрывают базы данных, где pg_database.datistemplate - это true, поскольку они считаются "внутренними" базами данных, а не обычными пользовательскими базами данных.

Клиентское приложение(ы) может предложить настройку для отображения этих баз данных, или вы можете открыть их непосредственно по имени.

Обратите внимание, что template0 обычно является базой данных только для чтения, которую вы не можете изменить, поэтому очень мало смысла обращаться к ней в пользовательском интерфейсе управления. template1 можно подключать и изменять, но все, что вы делаете с template1, будет копируется при создании новой базы данных (без явной опции TEMPLATE), поэтому обычно вы не хотите ее изменять.

Я настоятельно рекомендую вам игнорировать template0 и template1. Притворитесь, что их не существует.

Comments

    Ничего не найдено.