Создание подключения к базе данных
Подключение к базе данных хранит всё, что нужно системе для обращения к внешней базе данных с исходными данными аналитики: тип СУБД, сетевой адрес, учётные данные и — если база этого требует — SSL-сертификаты. Подключения создаются и управляются на странице Подключения, которая открывается из главного меню.
Область действия и предварительные условия
- Подключение относится к версии проекта, открытой в момент его создания. У каждой версии свой набор подключений; при создании новой версии подключения родительской версии копируются в неё вместе с сертификатами
- Проект должен быть открыт — в списке отображаются только подключения текущей открытой версии проекта
- Целевая база данных должна принимать входящие соединения от сервера приложения. IP-адрес сервера отображается над списком подключений вместе с кнопкой Копировать IP-адрес; этот адрес нужно разрешить в настройках сетевого доступа целевой базы данных
- Создание подключения доступно суперадминистраторам, администраторам компании, менеджерам проекта и разработчикам. Аналитик может просматривать и проверять подключения, но не может их создавать
Поддерживаемые типы СУБД
| Тип базы данных | Схема | SSL | Особенности |
|---|---|---|---|
| PostgreSQL | Указывается явно в поле Схема базы данных, по умолчанию — public |
Не настраивается | Полный набор типов данных |
| Microsoft SQL Server | В форме не указывается — используется схема dbo |
Не настраивается | — |
| ClickHouse | В форме не указывается — вместо неё используется название базы данных | Настраивается на вкладке SSL | Шифрование TLS с CA- и клиентскими сертификатами |
От типа базы данных зависит состав полей формы и набор проверок, выполняемых при проверке подключения. Тип можно изменить и позже, при редактировании подключения.
Создание подключения
- Откройте страницу Подключения и нажмите Добавить подключение
- Заполните поля на вкладке Параметры (см. таблицу ниже)
- Для подключения к ClickHouse откройте вкладку SSL и, если сервер требует TLS, установите флажок Использовать SSL и загрузите файлы сертификатов. Для остальных типов СУБД вкладка недоступна
- Нажмите Проверить, чтобы проверить параметры до сохранения
- Нажмите Сохранить
Параметры подключения
| Параметр | Обязательность | Описание |
|---|---|---|
| Название подключения | Да | 1–64 символа. Допустимы латинские и кириллические буквы, цифры, пробелы, точки, дефисы и подчёркивания; название не может начинаться с пробела, точки, дефиса или подчёркивания. Должно быть уникальным в рамках версии проекта |
| Тип базы данных | Да | PostgreSQL, Microsoft SQL Server или ClickHouse |
| Хост базы данных | Да | Доменное имя, адрес IPv4 или IPv6 сервера базы данных — без схемы, порта и пути |
| Порт базы данных | Да | Целое число от 1 до 65535 |
| Название базы данных | Да | Имя базы данных, к которой выполняется подключение |
| Схема базы данных | Да, для PostgreSQL | Имя схемы, по умолчанию — public. Для Microsoft SQL Server и ClickHouse поле скрыто |
| Пользователь базы данных | Да | Учётная запись в целевой базе данных. Учётной записи нужны права на чтение метаданных базы и таблиц-источников |
| Пароль пользователя | Да | Пароль этой учётной записи. Шифруется до отправки из браузера и хранится в зашифрованном виде |
Доступность полей в зависимости от типа СУБД
| Поле | PostgreSQL | Microsoft SQL Server | ClickHouse |
|---|---|---|---|
| Название подключения | Да | Да | Да |
| Тип базы данных | Да | Да | Да |
| Хост базы данных | Да | Да | Да |
| Порт базы данных | Да | Да | Да |
| Название базы данных | Да | Да | Да |
| Схема базы данных | Да | Нет | Нет |
| Пользователь базы данных | Да | Да | Да |
| Пароль пользователя | Да | Да | Да |
| Использовать SSL и поля сертификатов | Нет | Нет | Да |
SSL-сертификаты
Вкладка SSL доступна только для подключений к ClickHouse. Поля сертификатов становятся активными после установки флажка Использовать SSL.
| Поле | Описание |
|---|---|
| Использовать SSL | Включает TLS для соединения и активирует поля сертификатов |
| Сертификат центра сертификации (CA) | Корневой сертификат удостоверяющего центра |
| Клиентский сертификат | Клиентский сертификат для взаимной аутентификации |
| Закрытый ключ клиента | Закрытый ключ, соответствующий клиентскому сертификату |
У каждого поля сертификата есть кнопка загрузки (Загрузить) и кнопка Удалить, очищающая загруженный файл. Требования к файлам:
- Допустимые расширения:
.crt,.pem,.cer,.ca-bundle,.bundle - Максимальный размер одного файла — 1 МБ. Файл большего размера отклоняется с сообщением «Максимальный размер файла: 1 мегабайт»
Загруженные сертификаты хранятся в зашифрованном виде; в форме затем отображаются только имена их файлов.
Проверка подключения до сохранения
Кнопка Проверить проверяет параметры, введённые в форму в данный момент. При этом ничего не создаётся и не сохраняется: система устанавливает временное соединение с базой данных и, в зависимости от типа СУБД, дополнительно подтверждает существование целевого объекта.
- PostgreSQL — указанная схема должна существовать
- Microsoft SQL Server — указанная база данных должна существовать
- ClickHouse — сервер должен отвечать, а указанная база данных — существовать
Успешная проверка сопровождается уведомлением «Подключение к базе данных успешно установлено». При неуспешной проверке отображается причина (см. сообщения ниже).
Что происходит при сохранении подключения
- Выполняется проверка формы: обязательные поля, формат значений и уникальность названия подключения в рамках версии
- Создаётся запись подключения, а SSL-сертификаты, если они заданы, загружаются в зашифрованное хранилище
- Система подключается к базе данных и считывает её схему — список таблиц и колонок с типами данных
- Схема сохраняется как закешированный снимок, который затем используют конструктор таблиц фактов, модель данных и конструктор витрин, не обращаясь к базе повторно
- При успехе подключение получает статус Активно, в столбец Последнее обновление записывается текущее время и отображается уведомление «Подключение к базе данных выполнено успешно»
- Если какой-либо из этапов завершился ошибкой, подключение сохраняется со статусом Ошибка обновления
- Событие записывается в системный журнал вместе с параметрами подключения: тип, хост, порт, имя пользователя и признак использования SSL
Сохранение подключения, которое не удаётся установить
Если проверка при сохранении завершилась ошибкой, открывается диалог Проверьте настройки подключения с текстом «Подключение с текущими настройками не может быть установлено. Вы действительно хотите сохранить его?» и двумя кнопками:
- Вернуться к настройкам — закрывает диалог и оставляет форму открытой для исправлений
- Все равно сохранить — сохраняет подключение со статусом Ошибка обновления; отображается предупреждение «Подключение к базе данных сохранено, но не может быть установлено»
Сохранённое так подключение остаётся в списке: его можно исправить через редактирование или обновить, когда база данных станет доступна.
Проверки и сообщения об ошибках
| Сообщение | Причина |
|---|---|
| «Неверный формат названия подключения» | Название пустое, начинается с пробела, точки, дефиса или подчёркивания, длиннее 64 символов либо содержит недопустимые символы |
| «Подключение с таким названием уже существует. Пожалуйста, выберите другое название» | Название уже занято другим подключением этой версии проекта |
| «Неверный формат хоста базы данных» | Значение не похоже на доменное имя или IP-адрес |
| «Адрес указан неверно: введите доменное имя или IP-адрес без схемы, порта и пути» | Хост введён вместе со схемой, портом или путём |
| «Этот адрес недопустим в качестве адреса базы данных. Если база находится во внутренней сети, обратитесь к администратору.» | Исходящие подключения на этот адрес запрещены. Перечень доступных адресов задаёт администратор в конфигурации сервера |
| «Аутентификация не удалась: пароль неверен, или пользователя с таким логином не существует» | Неверное имя пользователя или пароль |
| «Доступ запрещен. Пожалуйста, проверьте ваше имя пользователя и пароль» | Учётная запись существует, но не имеет доступа к указанной базе данных |
| «База данных не существует. Пожалуйста, проверьте имя базы данных» | На сервере нет базы данных с таким именем |
| «Указанная схема не существует. Пожалуйста, проверьте имя схемы» | В базе данных нет схемы с таким именем (PostgreSQL) |
| «Ошибка SSL-соединения. Пожалуйста, проверьте настройки SSL и корректность сертификатов» | Сертификаты не соответствуют серверу, недействительны или срок их действия истёк |
| «Попытка соединения с базой данных истекла. Пожалуйста, попробуйте снова» | Сервер не ответил за отведённое время |
| «Не удалось установить соединение» | Хост недоступен или соединение отклонено |
| «Максимальный размер файла: 1 мегабайт» | Выбранный файл сертификата больше 1 МБ |
Примечания:
- Пароль ни на одном этапе не хранится в открытом виде: он шифруется в браузере перед отправкой и шифруется повторно перед записью в базу данных
- Файлы сертификатов хранятся только в зашифрованном хранилище; в записи подключения остаются лишь имена файлов
- Работа с существующими подключениями — список, обновление закешированной схемы, активация, редактирование и удаление — описана на следующей странице