Зачастую в инфраструктурах организаций и предприятий по сей день используются инструменты, которые так или иначе не соответствуют современным требованиям.
В частности, встречаются устаревшие веб-приложения NET, которые используют MSSQL, которые были разработаны давно и уже, естественно, не поддерживаются.
В этой статье рассмотрим установку Microsoft SQL Server 2022 на операционной системе Astra Linux 1.8
Ну и куда же без финтов ушами, которые нам придется сделать, особенно, если необходимо произвести установку в закрытой сети.
Ну что-ж, приступим.
Подготовительный этап
1. Скачаем ключи репозиториев Microsoft SQL Server 2022 и добавим список источников в свой репозиторий:
wget -O- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
wget -O- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql.list
А также добавим репозиторий инструментов для работы с MSSQL
wget -O /tmp/packages-microsoft-prod.deb -i packages-microsoft-prod.deb https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb
dpkg -i /tmp/packages-microsoft-prod.deb
Кроме того разрешим устанавливать пакеты не только из репозиториев Astra Linux:
echo "" > /etc/apt/preferences.d/astra.pin.pref
Подцепим стабильную ветку Astra 1.7, в которой необходимые версии зависимостей имеются:
echo "deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free" > /etc/apt/sources.list.d/1_7.list
Ну вот, наконец обновим наши списки источников пакетов:
apt-get update
Обязательно установим вышеуказанные пакеты с указанием версий:
apt-get install libssl1.1 libldap-2.4-2 -fy
В целом, репозиторий 1.7 нам больше не нужен, удаляем, обновляем apt
rm /etc/apt/sources.list.d/1_7.list
apt update
На этом подготовительный этап завершен, приступаем к установке.
Установка Microsoft SQL Server 2022 на Astra Linux 1.8.4.48
Собственно, устанавливаем сам сервер MSSQL:
sudo apt-get install -y mssql-server
По окончании установки пакета мы увидим сообщение:
+--------------------------------------------------------------+Выполните команду "sudo /opt/mssql/bin/mssql-conf setup",чтобы завершить установку Microsoft SQL Server+--------------------------------------------------------------+
Настраиваем наш сервер:
sudo /opt/mssql/bin/mssql-conf setup
После запуска конфигурирования мы увидим следующее сообщение в терминале, которое предлагает нам выбрать выпуск. Для тестов мы выберем 3) то есть Express (бесплатная):
Выберите выпуск SQL Server:1) Evaluation (бесплатный, без прав на использование в рабочем окружении, 180-дневное ограничение)2) Developer (бесплатный, без прав на использование в рабочем окружении)3) Express (бесплатная)4) Web (платный)5) Standard (платный)6) Enterprise (платный) - CPU core utilization restricted to 20 physical/40 hyperthreaded7) Enterprise Core (платный) - CPU core utilization up to Operating System Maximum8) У меня есть лицензия, купленная через канал розничных продаж, и ключ продукта для ввода.9) Standard (Billed through Azure) - Use pay-as-you-go billing through Azure.10) Enterprise Core (Billed through Azure) - Use pay-as-you-go billing through Azure.Сведения о выпусках:https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x419Использование платных выпусков этого программного обеспечения требует отдельного лицензирования черезпрограмму корпоративного лицензирования Майкрософт.При выборе платного выпуска вы подтверждаете наличие подходящегочисла имеющихся лицензий для установки и запуска этого программного обеспечения.By choosing an edition billed Pay-As-You-Go through Azure, you are verifyingthat the server and SQL Server will be connected to Azure by installing themanagement agent and Azure extension for SQL Server.Укажите свой выпуск(1-10): 3
Далее идет запрос, принимаем ли мы лицензию, отвечаем конечно же Yes:
Условия лицензии для этого продукта можно найти в
/usr/share/doc/mssql-server or downloaded from: https://aka.ms/useterms
Заявление о конфиденциальности можно просмотреть здесь:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x419
Вы принимаете условия лицензии? [Yes/No]:Yes
Затем нас встречает запрос локали, ну и мы, конечно же выбираем 9:
Выберите язык для SQL Server:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Руѝѝкий
(10) 中文 – 简体
(11) 中文 (繝体)
Введите параметр от 1 до 11: 9
Ну и в завершении конфигуратор запрашивает нас пароль системного администратора. (Если не ошибаюсь в MSSQL это по умолчанию sa):
Длина пароля должна быть не меньше восьми символов
Введите пароль системного администратора SQL Server:
ну и его подтверждение:Подтвердите пароль системного администратора SQL Server:
Проверяем работоспособность:
systemctl status mssql-server
Видим приятную глазу картину:
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-11-30 14:35:25 MSK; 19s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 9947 (sqlservr)
Tasks: 1
Memory: 761.6M
CPU: 1.529s
CGroup: /system.slice/mssql-server.service
└─9947 /opt/mssql/bin/sqlservr
Работа с базами данных. CLI консоль sqlcmd
Для работы с Microsoft SQL Server 2022 нам будет необходима семнадцатая версия программы sqlcmd, а также потребуется установка ODBC Driver for SQL Server.
Данный подводный камень выявили коллеги на Хабре
Поскольку репозитории мы уже подготовили на предварительном этапе, приступаем к установке необходимых пакетов:
apt-get install mssql-tools unixodbc-dev -fy
В процессе установки msodbcsql17 и mssql-tools в терминале нам выпадают диалоговые окна о необходимости соглашения с условиями лицензии. Соглашаемся:


Пропишем пути для удобства
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
Ну и попробуем войти в свою базу данных под пользователем sa и указанным Вами ранее паролем:
sqlcmd -S localhost -U sa -P 'ВашСложныйПароль'
Либо без указания пароля, дабы не оставлять следы в истории:
sqlcmd -S localhost -U sa
Входим в консоль и проверяем базы простейшей командой:
SELECT name FROM sys.databases;GO

Проверка прошла успешно.
Ну и для полного счастья можно добавить менеджер БД.
Установим, пожалуй Azure Data Studio, однако не забываем, что
Azure Data Studio будет прекращать свою деятельность 28 февраля 2026 г.. Мы рекомендуем использовать расширение MSSQL для Visual Studio Code. Дополнительные сведения о миграции в Visual Studio Code см. в Что происходит с Azure Data Studio?
wget -O /tmp/azuredatastudio-linux-1.52.0.deb https://go.microsoft.com/fwlink/?linkid=2324720
apt-get install libxss1 libgconf-2-4 libunwind8
apt-get install /tmp/azuredatastudio-linux-1.52.0.deb
Запустить можно из Пуск -> Программы -> (странно) Офис -> Azure Data Studio

При запуске всплывает окно о невозможности идентифицировать связку ключей в текущем окружении, и предлагает открыть гайд по решению проблем или использовать более слабое шифрование.
Для тестов нам достаточно Use weaker encryption. Жмем.

Теперь в приветственном окне выбираем создать соединение:

В открывшемся окне параметров соединения выставляем следующие параметры: сервер, тип аутентификации (SQL Login) ну и логин sa и наш пароль. Полагаю, логика ясна.

Ну, и при попытке соединения путем нажатия на кнопку Connect также получаем всплывающее сообщение о том, что соединение успешно установлено но ошибка возникла при первом рукопожатии. Поскольку ключи у нас самоподписанные и мы не используем сейчас ssl ключи в нашей тестовой среде, нам предлагается включить доверие сертификату сервера, что мы и сделаем.

В данном примере на картинке я подцепился с хостовой машины к серверу MSSQL на VirtualBox

Можно в принципе и руссифицировать. Выбираем в левом меню самую последнюю иконку приложения, откроется список, ну и в окне поиска просто пишем Russian и устанавливаем локализацию.

Оставляйте комментарии ниже, либо переходите к обсуждению в telegram

Будьте взаимовежливы и корректны.
Все сообщения проходят премодерацию.
Рекламные сообщения и комментарии с ссылками, не несущими смысловую нагрузку по тематике материала будут удаляться.