Гид по технологиям

Установка и базовое использование MSSQL Server на Debian 11

• 7 min read • Базы данных • Обновлено 21 Nov 2025
Установка MSSQL Server на Debian 11
Установка MSSQL Server на Debian 11

Важно: в руководстве используется стандартный TCP-порт 1433 для MSSQL. Убедитесь, что порт открыт только там, где это необходимо.

Основная цель

Установить и настроить MSSQL Server 2019 на сервере Debian 11, установить и настроить UFW и mssql-tools, научиться подключаться и выполнять базовые операции с базой данных (создание логина, базы, таблицы и CRUD-запросы).

Варианты формулировки задачи

  • Установка MSSQL на Debian 11
  • MSSQL Server 2019 на Debian (пошагово)
  • Как настроить sqlcmd и mssql-tools в Debian 11
  • Открытие порта 1433 и базовая работа с SQL Server на Linux

TL;DR

Установите зависимости, добавьте ключ Microsoft и репозиторий (используется пакет Ubuntu focal), затем установите mssql-server и выполните sudo /opt/mssql/bin/mssql-conf setup для настройки. Откройте порт 1433 в UFW, установите mssql-tools и добавьте /opt/mssql-tools/bin в PATH. Подключайтесь через sqlcmd и выполняйте SQL-запросы для управления базами и пользователями.

Краткое содержание

  • Требования
  • Настройка репозитория
  • Установка MSSQL Server 2019
  • Настройка UFW
  • Установка MSSQL Tools (sqlcmd, bcp)
  • Подключение и простые операции CRUD
  • Рекомендации по безопасности
  • Отладка и распространённые ошибки
  • Альтернативы и сценарии применения
  • Чеклисты для ролей
  • Краткий глоссарий

Требования

  • Сервер с Debian 11, минимум 4 ГБ оперативной памяти. Пример в руководстве: имя хоста mssql-deb, IP 192.168.5.10.
  • Непривилегированный пользователь с sudo-привилегиями.
  • Доступ в интернет для загрузки пакетов и ключей.

Факты и основные числа

  • Минимальная оперативная память: 4 ГБ (рекомендация производителя для базового использования).
  • Стандартный порт MSSQL Server: 1433/tcp.
  • Пакет: mssql-server (MSSQL Server 2019 Express по выбору в установщике).

Настройка репозитория

  1. Авторизуйтесь на сервере и получите root-права:
sudo su
sudo apt update
  1. Установите зависимости:
sudo apt install gnupg2 apt-transport-https wget curl

Установка зависимостей

  1. Добавьте GPG-ключ Microsoft и сохраните его в /usr/share/keyrings:
wget -q -O- https://packages.microsoft.com/keys/microsoft.asc | \
    gpg --dearmor | sudo tee /usr/share/keyrings/microsoft.gpg > /dev/null 2>&1
  1. Добавьте репозиторий MSSQL Server (используем репозиторий для Ubuntu 20.04 focal):
echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019 focal main" | \
    sudo tee /etc/apt/sources.list.d/mssql-server-2019.list
  1. Обновите индекс пакетов:
sudo apt update

После этого репозиторий MSSQL Server доступен для установки на Debian 11.

Установка MSSQL Server 2019

  1. Установите пакет mssql-server:
sudo apt install mssql-server

Установка MSSQL Server

  1. После установки запустите мастер настройки:
sudo /opt/mssql/bin/mssql-conf setup

В процессе вас попросят выбрать издания (например, Express), принять лицензионное соглашение и задать пароль для SA или основного логина.

  1. Проверьте статус службы:
sudo systemctl is-enabled mssql-server
sudo systemctl status mssql-server

Если enabled — служба будет запускаться при старте системы; статус active (running) указывает на успешный запуск.

Проверка статуса MSSQL Server

Настройка UFW (фаервол)

  1. Установите ufw:
sudo apt install ufw

Установка UFW

  1. Разрешите OpenSSH и порт MSSQL 1433/tcp:
sudo ufw allow OpenSSH
sudo ufw allow 1433/tcp
  1. Включите и проверьте ufw:
sudo ufw enable
sudo ufw status

Вы должны увидеть статус active и правила для OpenSSH и 1433/tcp.

Настройка UFW

Заметка: по умолчанию MSSQL будет слушать на 1433. Если вы изменяете порт для безопасности, не забудьте обновить правило UFW.

Установка MSSQL Tools (sqlcmd и bcp)

  1. Добавьте репозиторий prod для mssql-tools:
echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod focal main" | \
    sudo tee /etc/apt/sources.list.d/prod.list
  1. Обновите индекс и установите инструменты:
sudo apt update
sudo apt install mssql-tools unixodbc-dev

При установке потребуется принять лицензионные условия.

Установка mssql-tools

  1. Убедитесь, что бинарники доступны, и добавьте их в PATH для постоянного доступа:
ls /opt/mssql-tools/bin
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
which sqlcmd
which bcp

После этого команды sqlcmd и bcp будут доступны в вашей сессии без указания полного пути.

Проверка mssql-tools

Подключение к MSSQL Server

Подключитесь с помощью sqlcmd (будет запрошен пароль):

sqlcmd -S localhost -U SA -p

В SQL-консоли выполните проверку версии:

select @@version
go

Ожидаемый вывод содержит указание на MSSQL Server 2019 Express (в случае выбора Express).

Подключение к SQL Server

Список баз данных по умолчанию:

select name from sys.databases;
go

Вы увидите master, tempdb, model, msdb.

Список баз данных

Базовые операции (CRUD) через sqlcmd

  1. Создаём логин Bob (измените пароль на надёжный):
CREATE LOGIN Bob WITH PASSWORD='p4ssw0rdBob';
GO
  1. Создаём базу TestDB:
CREATE DATABASE TestDB
GO

Создание логина и базы

  1. Переходим в базу и создаём таблицу users:
Use TestDB
GO

CREATE TABLE users (
    id INT PRIMARY KEY IDENTITY (1, 1),
    first_name VARCHAR (50) NOT NULL,
    last_name varchar(50) NOT NULL,
    email varchar(50),
    last_login DATE NOT NULL
);
GO

Создание таблицы users

  1. Создаём пользователя базы и даём права на таблицу users:
CREATE USER Bob FOR LOGIN Bob;
GO

GRANT SELECT, INSERT, UPDATE, DELETE ON users TO Bob;
GO
  1. Выйдите из sqlcmd:
quit

Подтверждение создания

  1. Подключитесь как Bob к TestDB и вставьте строку:
sqlcmd -S localhost -U Bob -d TestDB -p

INSERT INTO users (first_name, last_name, email, last_login) VALUES ('Bob', 'Marlyn', '[email protected]', '2022-09-01');
GO

SELECT * FROM users
GO

Обратите внимание: для даты можно использовать формат YYYY-MM-DD для избежания региональных неоднозначностей.

Проверка вставки

Рекомендации по безопасности и настройке производительности

  • Пароли: используйте сложные пароли и регулярно их меняйте; исключите очевидные значения.
  • SA: по возможности отключайте прямой вход SA и используйте для администрирования отдельные высокопривилегированные группы/аккаунты.
  • Сеть: ограничьте доступ к порту 1433 через UFW и по IP; не открывайте порт MSSQL в публичный интернет.
  • Шифрование: настройте шифрование TLS для клиентских подключений, если база доступна по сети.
  • Резервное копирование: планируйте регулярные бэкапы (полные/диффы/лог транзакций) вне сервера.
  • Ресурсы: для рабочих нагрузок оценивайте память и конфигурацию процессоров; для крупных нагрузок используйте отдельные диски/RAID.

Краткая команда или действие для смены порта описана в документации Microsoft (mssql-conf) — проверяйте актуальные источники при изменении сетевых настроек.

Отладка и распространённые ошибки

  1. MSSQL не запускается

    • Проверьте логи systemd: sudo journalctl -u mssql-server -b
    • Убедитесь, что порт 1433 не занят другой службой (sudo ss -tulnp | grep 1433).
    • Проверьте наличие достаточного объёма памяти и места на диске.
  2. Не удаётся подключиться по сети

    • Проверьте UFW: sudo ufw status
    • Проверьте, слушает ли MSSQL нужный интерфейс: ss -tulnp | grep sqlservr
    • Убедитесь, что нет промежуточных сетевых фильтров (облако, hardware firewall).
  3. Ошибки аутентификации

    • Проверьте, включена ли смешанная аутентификация (SQL + Windows). На Linux требуется настроить логины SQL.
    • Убедитесь в правильности ввода пароля и кодировки.
  4. sqlcmd сообщает, что команда не найдена

    • Убедитесь, что /opt/mssql-tools/bin добавлен в PATH и вы выполнили source ~/.bashrc.

Когда этот подход не подходит

  • Если вы хотите разворачивать MSSQL в контейнере или оркестраторе — предпочтительнее использовать официальные контейнерные образы Microsoft и практики DevOps.
  • Для небольших встраиваемых решений или lightweight проектов может быть экономичнее использовать PostgreSQL или MariaDB в зависимости от требований.
  • В средах с требованиями только Windows-авторизации лучше использовать Windows Server с интеграцией Active Directory.

Альтернативные подходы

  • Контейнеризация: официальный образ mcr.microsoft.com/mssql/server для Docker/Kubernetes.
  • Использование управляемого сервиса BaaS (Azure SQL, Amazon RDS for SQL Server) вместо собственного сервера.
  • Переход на OSS-аналоги (PostgreSQL) при отсутствии требований к T-SQL / специфичным фичам MSSQL.

Чеклисты для ролей

Администратор (SysAdmin)

  • Проверить системные требования и ресурсы
  • Добавить GPG-ключ и репозитории
  • Установить mssql-server и выполнить mssql-conf setup
  • Настроить UFW, оставить доступ только нужным IP
  • Настроить резервное копирование и мониторинг

Разработчик

  • Установить mssql-tools
  • Проверить подключение через sqlcmd
  • Создать тестовую БД и таблицу
  • Написать и прогнать тесты CRUD

Операции и безопасность

  • Отключить ненужные сетевые интерфейсы
  • Пересмотреть права пользователей и роли
  • Настроить TLS и аудит подключений

Мини-методология внедрения (быстрый SOP)

  1. Подготовка: snapshot/резервная точка восстановления ОС.
  2. Установка зависимостей и добавление репозиториев.
  3. Установка mssql-server и первичная настройка через mssql-conf.
  4. Установка и проверка mssql-tools.
  5. Настройка сети и бэкапов.
  6. Тестирование с контрольным сценарием CRUD и нагрузочным тестом для подтверждения SLI.

Критерии приёмки

  • Служба mssql-server должна быть active (running).
  • sqlcmd подключается под SA и под созданным пользователем.
  • Порт 1433 доступен из разрешённых сетей и закрыт из публичного интернета.
  • Выполнены тестовые CRUD-операции без ошибок.

Краткий глоссарий

  • MSSQL Server: СУБД от Microsoft.
  • mssql-conf: инструмент конфигурации MSSQL на Linux.
  • sqlcmd: консольный клиент Microsoft для выполнения T-SQL-команд.
  • bcp: утилита для пакетного импорта/экспорта данных.
  • UFW: простой интерфейс для управления iptables на Ubuntu/Debian.

FAQ

Q: Почему используется репозиторий Ubuntu на Debian?

A: Microsoft распространяет пакеты для Ubuntu 20.04 (focal). На практике пакеты совместимы с Debian 11, поэтому в этом руководстве используется репозиторий focal. Проверяйте совместимость пакетов перед прод-развёртыванием.

Q: Как сменить порт по умолчанию?

A: Порт настраивается в конфигурации MSSQL через mssql-conf или конфигурационные файлы; после изменения обновите правила фаервола.

Q: Нужно ли открывать 1433 на публичный интернет?

A: Нет. Открывайте порт только для доверенных сетей или используйте VPN/прокси.


Заключение

Вы установили MSSQL Server 2019 на Debian 11, настроили UFW, установили mssql-tools и провели базовые операции создания логинов, базы данных и таблицы с дальнейшими CRUD-операциями через sqlcmd. Дополнительно представлены рекомендации по безопасности, чеклисты для ролей, методология внедрения и набор шагов для устранения типичных проблем.

Если вы планируете использовать MSSQL в продакшн-среде, обязательно настройте резервное копирование, мониторинг, TLS и строгую политику управления доступом.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро