====== БД. Создание, Подключение, Заполнение ====== Для работы серверной части ProBonus требуется подключение к БД MS SQL (достаточно бесплатной версии Express). Сервер ProBonus и MS SQL Server могут работать как на одной машине, так и на разных. Во втором случае подключение к БД прописывается через сетевое имя (или IP адрес) сервера на котором развернут MS SQL. Чаще всего серверная часть ProBonus устанавливается на тот же компьютер что и сервер справочников (сервер отчетов) r_keeper и база данных создается в том же экземпляре MS SQL. ===== Создание новой БД ===== При помощи MSSQL Server Management Studio подключаемся к нужному серверу SQL и создаем новую базу данных с уникальным именем, например "probonus". {{:external:pro_bonus:01_setup:pasted:20221008-130156.png}} {{:external:pro_bonus:01_setup:pasted:20221008-125713.png}} {{:external:pro_bonus:01_setup:pasted:20221008-130304.png}} ===== Подключение ProBonus к БД ===== Открыть web интерфейс ProBonus перейдя по ссылке http://127.0.0.1:11030/ И войти в систему используя следующие данные **Логин:** user **Пароль:** 123 {{:external:pro_bonus:01_setup:pasted:20230530-142537.png}} Во вкладке "**Соединение с БД**" задать строку подключения к базе данных MS SQL Server в формате драйвера SQL Python - pyodbc. Для удобства настройки есть помощник (рекомендуемый способ подключения) для генерации строки подключения и проверки соединения. Строка подключения формируется внизу окна, по мере заполнения полей. {{:external:pro_bonus:01_setup:pasted:20230530-083130.png}} - Выбрать драйвер MS ODBC для SQL Server (из доступных в списке). - Указать имя (ip адрес) и порт сервера MS SQL. - Ввести имя пользователя и пароль. - Нажать кнопку "Обновить список БД". - Если все верно, то произойдет подключение к указанному серверу MS SQL и будет доступен список баз на этом сервере, из которого надо выбрать нашу базу (probonus), созданную на прошлом шаге. - Нажать кнопку "Использовать строку". === Драйвер Microsoft ODBC для SQL Server === В ниспадающем списке отображаются драйвера установленные в системе на которой запущен сервер ПДС. Выбираем SQL Server Native Client 11.0. **Важно!** Лучше всего устанавливать сервер ProBonus на той же машине что и MS SQL Srever. В противном случае для подключения ProBonus к серверу MS SQL дополнительно придется установить SQL Client. === Имя сервера MS SQL Server === Если в качестве имени сервера используется сетевой адрес, то номер порта отделяется запятой а не двоеточием! Примеры: * SQLSERVER-TEST * localhost * localhost, 1433 * 127.0.0.1, 1433 === Встроенная проверка подлинности Windows === **Не рекомендуется к использованию без особой необходимости. Имеется специфика в настройке прав доступа к SQL (у учетной записи, от которой запускается служба ProBonus, должны быть права).** Про режимы проверки можно почитать тут: https://docs.microsoft.com/ru-ru/sql/relational-databases/security/choose-an-authentication-mode?view=sql-server-ver15 Если сервер ProBonus развернут на машине с MS SQL Server и он позволяет авторизовать пользователя Windows проще поставить эту галку. Тогда имя пользователя и пароль вводить не надо. Если сервер удалённый, при подключении по сети, то проще задать имя пользователя и пароль. {{:external:pro_bonus:01_setup:pasted:20230530-083457.png}} Для окончания настройки соединения и сохранения данных подключения нажать кнопку "Проверить и сохранить", после чего заново войти в web интерфейс. {{:external:pro_bonus:01_setup:pasted:20230530-083609.png}} ===== Заполнение структуры БД ===== После успешного сохранения подключения и повторного входа в web-интерфейс, перейти в раздел **"Соединение с БД"** и нажать кнопку **"Создать структуру в пустой базе данных"**. Эта операция приведёт к тому, что в ранее созданной БД в MS SQL (probonus), будут автоматически созданы необходимые таблицы и заполненные первичные данные, необходимые для работы системы. Строка соединения с БД в интерфейсе при этом не будет заполненной - это не является проблемой или ошибкой. {{:external:pro_bonus:01_setup:pasted:20230530-085601.png}} Признак того что база данных заполнена успешно - заполненная информация "текущая версия" в информации о базе данных. {{:external:pro_bonus:01_setup:pasted:20230530-142244.png}}