Строка подключения PostgreSQL без базы данных — ошибка при использовании NPgSQL

#postgresql #npgsql

#postgresql #npgsql

Вопрос:

Я получаю сообщение об ошибке при подключении к PgSQL, когда я опускаю базу данных из строки подключения с использованием Npgsql (.net)

  • Ошибка: {«3D000: база данных»j.smith» не существует»}
  • Ошибка строки подключения: Сервер = {0}; Порт = {1}; Идентификатор пользователя = {2}; Пароль = {3};
  • Рабочая строка подключения: Сервер = {0}; Порт = {1}; Идентификатор пользователя = {2}; Пароль = {3};База данных = postgres

Я понимаю, что без параметра базы данных Pg по умолчанию будет иметь значение Database=User, но я бы предпочел не указывать базу данных. Есть ли какой-нибудь способ сделать это?

В противном случае, существует ли база данных postgres в каждой установке PgSQL и может ли любой пользователь, который может войти в систему, всегда подключаться к ней?

Похоже, что в Npgsql была ошибка, связанная с этим, но она была исправлена в 3.0.1. Я использую 3.1.8. https://github.com/npgsql/npgsql/issues/703

Спасибо. Ковчег

Комментарии:

1. вы создали "j.smith" db?

2. j.smith является пользователем.

3. если вы не включите Database, вы попытаетесь подключиться к user_name_db so, либо уже предоставите общую базу данных, либо создайте ее с именем пользователя

4. Непонятно, что вы ищете… Вы уже знаете, что когда вы опускаете базу данных, используется имя пользователя (как это стандартно для инструментов PostgreSQL), что еще вы ожидаете от Npgsql?

5. По сути, я хочу подключиться к базе данных для проверки учетных данных, а затем запросить из системного каталога список базы данных. В моем приложении есть кнопка «Проверить подключение», с помощью которой это можно сделать. Если я могу ожидать, что база данных ‘postgres’ всегда будет существовать, я с радостью добавлю это в строку подключения. Так ли это?