====== БД. Создание, подключение, заполнение ====== **Требуется MS SQL Server 2017 и выше!** Для работы серверной части ProBonus требуется подключение к БД MS SQL (достаточно бесплатной версии Express). В отдельных случаях, когда БД разрастается больше 10 ГБ, потребуется апгрейд до версии Standard. Сервер ProBonus и MS SQL Server могут работать как на одной машине, так и на разных. Во втором случае подключение к БД прописывается через сетевое имя (или IP-адрес) сервера, на котором развёрнут MS SQL. Чаще всего серверная часть ProBonus устанавливается на тот же компьютер, что и сервер справочников (сервер отчётов) r_keeper, и база данных создаётся в том же экземпляре MS SQL. ===== Создание новой БД ===== С помощью MS SQL 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 к БД ===== Откройте веб-интерфейс ProBonus, перейдя по ссылке [[http://127.0.0.1:11030/|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 ==== В ниспадающем списке отображаются драйверы, установленные в системе, на которой запущен сервер ProBonus. Выберите SQL Server Native Client 11.0. **Важно!** Лучше всего устанавливать сервер ProBonus на той же машине, что и MS SQL Server. В противном случае для подключения 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}} Для окончания настройки соединения и сохранения данных подключения нажмите кнопку **Проверить и сохранить**, после чего заново войдите в веб-интерфейс. {{:external:pro_bonus:01_setup:pasted:20230530-083609.png}} ===== Заполнение структуры БД ===== После успешного сохранения подключения и повторного входа в веб-интерфейс перейдите в раздел **Соединение с БД** и нажмите кнопку **Создать структуру в пустой базе данных**. Эта операция приведёт к тому, что в ранее созданной БД в MS SQL (''probonus'') будут автоматически созданы необходимые таблицы и заполнены первичные данные, необходимые для работы системы. Строка соединения с БД в интерфейсе при этом не будет заполнена — это не является проблемой или ошибкой. {{:external:pro_bonus:01_setup:pasted:20230530-085601.png}} Признак того, что база данных заполнена успешно, — заполненная информация «Текущая версия» в информации о базе данных. {{:external:pro_bonus:01_setup:pasted:20230530-142244.png}}