Будет ли работать MS SQL Server 2019, если количество фактических пользователей превышает число купленных CAL-лицензий?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Рассмотрим ситуацию, которая часто встречается при развертывании инфраструктуры для 1С:Предприятие: в наличии имеется официально приобретенная коробочная версия MS SQL Server 2019 Standard с ограниченным количеством клиентских лицензий (например, 10 CAL), но реальное число пользователей, работающих в базах 1С, значительно выше (50 и более человек). В рамках данной статьи мы подробно разберем, как ведет себя система с технической точки зрения, какие ограничения существуют в версии Standard и как правильно трактовать правила лицензирования Microsoft в контексте работы с сервером приложений 1С.

Технический контроль подключений в MS SQL Server 2019

Проанализируем главный технический вопрос: существует ли в современных версиях SQL Server встроенный «счетчик», который блокирует 11-го пользователя при наличии всего 10 лицензий? Выясним исторический контекст: в очень старых версиях (например, SQL Server 6.5 или 7.0) действительно существовали механизмы ручного ввода количества лицензий в настройках сервера, и система могла ограничивать количество одновременных соединений.

Однако в MS SQL Server 2019 (как и во всех версиях, начиная с 2005-2008) технический программный контроль количества CAL-лицензий отсутствует. Это означает, что при установке «коробочной» версии или версии, активированной ключом, сервер не будет прерывать сессии пользователей, если их станет больше, чем указано в лицензионном соглашении. Система работает по принципу Self-compliance (самостоятельный контроль соответствия). Если вы установите сервер и начнете работу, он технически «пустит» и 50, и 100 человек, если позволят аппаратные ресурсы.

Взаимодействие сервера 1С и SQL Server: подвох с пользователями

Разберем, как именно 1С:Предприятие взаимодействует с базой данных. В сообщениях форума часто встречается утверждение: «Технически сервер 1С работает со скулем под одним единственным пользователем». Это утверждение верно лишь отчасти и требует пояснения.

Когда пользователи подключаются к базе 1С, они взаимодействуют с сервером приложений 1С (rphost). Именно сервер приложений устанавливает физические соединения с SQL Server. Для этого используется одна или несколько учетных записей (обычно это доменная учетная запись службы или SQL-пользователь sa). С точки зрения SQL Server, он видит ограниченное количество активных сессий, инициированных процессом сервера 1С, а не 50 разных Windows-пользователей.

Чтобы убедиться в этом, проанализируем ситуацию с помощью простого запроса в SQL Server Management Studio (SSMS), который показывает текущие соединения:


SELECT 
    login_name, 
    host_name, 
    program_name, 
    COUNT(session_id) AS [ConnectionsCount]
FROM sys.dm_exec_sessions
WHERE is_user_process = 1
GROUP BY login_name, host_name, program_name;

Выполнив этот запрос, мы увидим, что большинство соединений приходят от одного host_name (сервер 1С) под одним login_name. Однако это техническое удобство не означает, что вам не нужны лицензии.

Правило мультиплексирования (Multiplexing)

Рассмотрим важнейший юридический аспект, который Microsoft называет мультиплексированием. Мультиплексирование — это использование аппаратного или программного обеспечения (в нашем случае — сервера 1С), которое объединяет подключения, перенаправляет информацию или уменьшает количество устройств или пользователей, напрямую обращающихся к SQL Server.

Согласно официальному руководству по лицензированию Microsoft, использование мультиплексирования не уменьшает количество необходимых клиентских лицензий. Это означает:

  1. Если 50 пользователей работают в 1С, которая обращается к MS SQL Server, вам необходимо иметь 50 CAL (клиентских лицензий), несмотря на то, что физических соединений к SQL может быть меньше.
  2. Лицензируется «конечная точка» — человек или устройство, которое является первоначальным источником запроса к данным.

Технические ограничения редакции Standard

Посмотрим на ситуацию со стороны производительности. Автор темы использует «коробочную» версию, что соответствует редакции Standard. Даже если SQL Server позволит подключиться 50 пользователям, вы можете столкнуться с аппаратными лимитами, жестко зашитыми в код программы:

Выбор между моделями «Server + CAL» и «Per Core»

Проанализируем, когда стоит задуматься о смене модели лицензирования. Существует две основные схемы:

  1. Server + CAL: Вы платите за лицензию на сервер и за каждого пользователя. Это выгодно для малых организаций (до 30 пользователей).
  2. Per Core (На ядро): Вы лицензируете вычислительные мощности сервера (минимум 4 ядра на процессор/ВМ). В этой модели количество пользователей не ограничено и никак не контролируется — ни технически, ни юридически.

Для 50 пользователей 1С экономически часто выгоднее купить лицензию Per Core, так как стоимость 50 отдельных CAL может превысить стоимость лицензирования 8-12 ядер сервера. В модели «на ядро» вам больше никогда не придется считать пользователей, сколько бы их ни добавилось в базу.

Лицензирование в виртуальной среде

Разберем нюанс работы SQL Server на виртуальных машинах (VM). Если вы используете модель Server + CAL, вам достаточно назначить лицензию самой виртуальной машине и обеспечить наличие CAL для всех пользователей. Если же вы решите перейти на модель Per Core в облаке или на собственном гипервизоре, помните:

Нужно лицензировать все виртуальные ядра (vCPU), выделенные виртуальной машине, но не менее 4 лицензий на ядра для каждого экземпляра. Рассмотрим пример: если вы выделили под SQL Server всего 2 виртуальных ядра, вам все равно придется оплатить 4.

Выводы и рекомендации

Подведем итог нашему исследованию:

  1. Технически: MS SQL Server 2019 не заблокирует работу 50 пользователей при наличии 10 CAL. Система будет функционировать в обычном режиме.
  2. Юридически: Работа без достаточного количества CAL является нарушением лицензионного соглашения (мультиплексирование). В случае аудита или проверки контролирующими органами это будет квалифицировано как использование нелицензионного ПО.
  3. Решение: При таком количестве пользователей (50+) мы рекомендуем рассмотреть переход на лицензирование по ядрам (Per Core). Это снимет вопросы учета пользователей и позволит легально масштабировать систему.
  4. Альтернатива: Для небольших, некритичных баз можно рассмотреть SQL Server Express, но помните о его жестких лимитах (1 ГБ RAM на процесс, 10 ГБ размер базы), которые практически исключают комфортную работу 50 человек в 1С.

Таким образом, мы выяснили, что отсутствие технического запрета не означает легальность использования. Для стабильной и законной работы системы 1С:Предприятие необходимо либо докупить недостающие CAL, либо сменить модель лицензирования на процессорную.

← На главную