
Управление лицензиями MS SQL Server критически важно для соблюдения корпоративных и юридических требований. Неправильное лицензирование может привести к блокировке функционала сервера или штрафам за нарушение условий использования. В данной инструкции рассматриваются методы точной проверки типа лицензии, количества пользователей и активных CAL (Client Access License).
Для начала необходимо определить версию и редакцию SQL Server. Выполните команду SELECT @@VERSION в SQL Server Management Studio (SSMS) или используйте sqlcmd из командной строки. Эта информация позволит идентифицировать, используется ли Standard, Enterprise, Web или Developer редакция, так как способы лицензирования и ограничения функционала различаются.
Далее важно проверить количество лицензированных процессоров или пользователей. Для редакций с лицензированием по ядрам используйте sys.dm_os_sys_info для определения числа физических и логических процессоров. Для пользовательских CAL используйте отчеты Active Directory и таблицы sys.syslogins для анализа зарегистрированных пользователей и их активности.
Особое внимание уделяется активации сервера. В SQL Server существует механизм проверки статуса лицензии через slmgr.vbs для Windows Server, на котором установлен SQL, и через встроенные функции SQL для оценки текущей активации. Несоответствие версии и ключа продукта может ограничить работу отдельных компонентов, таких как Reporting Services или Integration Services.
Последний шаг – документирование результатов. Составление таблицы с указанием версии, редакции, числа лицензированных ядер, пользователей и даты проверки позволит систематизировать контроль и подготовиться к внутреннему или внешнему аудиту без потери времени на повторные проверки.
Определение текущей редакции и версии SQL Server
Для точной проверки лицензии SQL Server необходимо определить установленную версию и редакцию сервера. Это позволяет корректно соотнести используемые функции с лицензированием.
- Использование системной функции
@@VERSION:Выполните в SQL Server Management Studio (SSMS) следующий запрос:
SELECT @@VERSION;Результат содержит полную строку с версией, сборкой и редакцией SQL Server. Например: «Microsoft SQL Server 2019 (RTM) — 15.0.2000.5 (X64)».
- Определение редакции через системное представление
SERVERPROPERTY:Выполните запрос:
SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('Edition') AS Edition;- ProductVersion – версия SQL Server (например, 15.0.2000.5).
- ProductLevel – уровень обновления (RTM, SP1, SP2 и т.д.).
- Edition – редакция сервера (Enterprise, Standard, Developer, Express).
- Проверка через командную строку Windows:
Используйте утилиту
sqlcmd:sqlcmd -S <имя_сервера> -Q "SELECT @@VERSION"Позволяет быстро получить версию без открытия SSMS, особенно на удалённых серверах.
- Фиксация версии и редакции:
Рекомендуется сохранять результаты запросов в отдельный документ для аудита лицензий. Это минимизирует риск использования функций, не поддерживаемых текущей редакцией.
После определения версии и редакции необходимо сверить её с типом лицензии, чтобы убедиться, что сервер используется в соответствии с условиями Microsoft.
Проверка типа лицензии через SQL Server Management Studio
Для определения типа лицензии SQL Server через SSMS необходимо использовать системное представление SERVERPROPERTY. Откройте SQL Server Management Studio и выполните подключение к нужному экземпляру сервера.
Следующий запрос возвращает сведения о версии, редакции и типе лицензии:
SELECT SERVERPROPERTY('ProductVersion') AS Версия,
SERVERPROPERTY('ProductLevel') AS УровеньОбновления,
SERVERPROPERTY('Edition') AS Редакция,
SERVERPROPERTY('LicenseType') AS ТипЛицензии,
SERVERPROPERTY('NumLicenses') AS КоличествоЛицензий;
Описание возвращаемых полей:
| Поле | Описание |
|---|---|
| Версия | Номер сборки SQL Server, например 15.0.2070.41 |
| УровеньОбновления | Сервис-пак или cumulative update, установленный на сервере |
| Редакция | Редакция продукта, например Enterprise, Standard, Express |
| ТипЛицензии | Показывает ключевой режим лицензирования: PER_SEAT, PER_CORE, или NULL для Express/Developer |
| КоличествоЛицензий | Отображает количество лицензий CAL или ядер, если применимо |
После выполнения запроса рекомендуется сверить полученные данные с активной лицензионной документацией. Для серверов с лицензией по ядрам значение NumLicenses может быть NULL, и для точного определения следует учитывать информацию о физических ядрах сервера.
Дополнительно можно проверить сведения о лицензии через интерфейс SSMS: в Object Explorer правой кнопкой мыши на сервер → Properties → License. Здесь отображается редакция и количество лицензий, что позволяет быстро сопоставить их с результатами запроса.
Регулярная проверка лицензии помогает избежать несоответствия и предупреждает проблемы при аудитах.
Использование командной строки для получения информации о лицензии
Для проверки лицензии MS SQL Server через командную строку используется утилита sqlcmd. Она позволяет выполнить SQL-запросы напрямую к серверу без запуска Management Studio.
Откройте командную строку с правами администратора и подключитесь к нужному экземпляру сервера с помощью команды:
sqlcmd -S <ИмяСервера>\<ИмяЭкземпляра> -E
Для отображения информации о лицензии выполните следующий запрос:
SELECT SERVERPROPERTY('Edition') AS Edition, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('LicenseType') AS LicenseType;
После ввода запроса нажмите Enter, затем GO для выполнения. Результат покажет редакцию сервера, уровень продукта, версию и тип лицензии.
Для автоматизации проверки на нескольких серверах можно использовать пакетный файл (*.bat) с командой:
sqlcmd -S <ИмяСервера> -E -Q "SELECT SERVERPROPERTY('Edition'), SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('LicenseType')"
Если sqlcmd не установлен, его можно добавить через компонент «SQL Server Command Line Utilities» или включить при установке SQL Server.
Проверка числа установленных и активных экземпляров SQL Server

Для точного контроля лицензий важно определить, какие экземпляры SQL Server установлены и какие из них активны. Следуйте пошаговым инструкциям для получения полной картины.
-
Откройте SQL Server Configuration Manager. Он отображает все установленные экземпляры на сервере и их статус.
-
В разделе SQL Server Services проверьте колонку Status для каждого экземпляра. Статус Running указывает на активный экземпляр.
-
Используйте команду в PowerShell для получения списка установленных экземпляров:
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
Каждый найденный ключ соответствует установленному экземпляру.
-
Для проверки активных соединений выполните T-SQL на каждом экземпляре:
SELECT @@SERVERNAME AS InstanceName, COUNT(*) AS ActiveConnections FROM sys.dm_exec_sessions WHERE status = 'running';
Количество записей > 0 указывает на активное использование экземпляра.
-
Проверка версий и редакций каждого экземпляра выполняется через:
SELECT SERVERPROPERTY('ProductVersion') AS Version, SERVERPROPERTY('Edition') AS Edition, SERVERPROPERTY('EngineEdition') AS EngineType;Эти данные важны для соответствия лицензированию.
-
Для централизованного обзора на нескольких серверах можно использовать SQL Server Management Studio (SSMS) и подключиться к Registered Servers, чтобы вывести список всех экземпляров и их статусы.
Регулярная проверка установленных и активных экземпляров позволяет выявлять неиспользуемые инсталляции, оптимизировать лицензии и исключить нарушения условий использования.
Сравнение лицензии с установленными функциями и ролями сервера

Проверьте редакцию и версию SQL Server через SELECT SERVERPROPERTY('Edition'), SERVERPROPERTY('ProductVersion');. Enterprise поддерживает все функции и не ограничивает количество ядер, Standard ограничивает функции Always On, Data Compression, PolyBase и некоторые аналитические возможности.
Определите активные функции инстанса с помощью SELECT name, type_desc FROM sys.objects WHERE type IN ('P','V','FN');. Сверьте их с лицензией: использование функций, недоступных в Standard, нарушает условия лицензирования.
Анализ ролей сервера выполняется через SELECT name, type_desc FROM sys.server_principals WHERE type_desc IN ('SQL_LOGIN','WINDOWS_LOGIN','DATABASE_ROLE');. Standard ограничивает расширенные роли для кластеров и Always On Availability Groups, Enterprise этих ограничений не имеет.
Составьте таблицу соответствия лицензии и фактически используемых функций и ролей: укажите версию, редакцию, активные функции и назначенные роли. Фиксируйте функции, выходящие за рамки лицензии, включая репликацию, In-Memory OLTP и Data Compression.
Для автоматизации сверки используйте PowerShell: Get-SqlInstance и Get-SqlService позволяют получить полные данные по инстансам, ролям и активным функциям, ускоряя аудит и выявление несоответствий.
Формируйте отчёт с указанием версии, редакции, функций и ролей для внутреннего контроля и подготовки к внешнему аудиту. Это обеспечивает прозрачность использования лицензии и позволяет планировать обновление или масштабирование сервера.
Отслеживание использования CAL и серверных лицензий

Для точного контроля лицензий MS SQL Server важно разделять серверные лицензии и клиентские лицензии (CAL). Серверная лицензия назначается каждой установке SQL Server, тогда как CAL необходима каждому пользователю или устройству, подключающемуся к серверу.
Первый шаг – аудит текущих подключений. Используйте системный представления sys.dm_exec_sessions и sys.dm_exec_connections для выявления активных пользователей и приложений. Сравнивайте их с количеством приобретенных CAL, чтобы определить превышение или неиспользуемые лицензии.
Для серверных лицензий отслеживайте версии и редакции SQL Server через SELECT @@VERSION и SELECT SERVERPROPERTY('Edition'). Это позволяет контролировать, чтобы каждая инстанция имела соответствующую лицензированную версию и не нарушала соглашения с Microsoft.
Используйте SQL Server Management Studio (SSMS) и отчеты License Usage Report в SQL Server Reporting Services для визуализации использования CAL. Для организаций с большим количеством пользователей рекомендуется автоматизация с помощью скриптов PowerShell, которые периодически фиксируют количество активных сессий и отправляют уведомления о превышении лимитов.
Обязательно ведите журнал изменений лицензий: дата установки, тип лицензии, пользователь или устройство. Это упрощает внутренний аудит и подготовку к внешним проверкам Microsoft. Для больших инфраструктур целесообразно использовать систему управления IT-активами (ITAM) с интеграцией SQL Server, чтобы отслеживать соответствие лицензий в режиме реального времени.
Регулярно пересматривайте договоры лицензирования и корректируйте количество CAL в зависимости от роста пользователей. Это снижает риск штрафов и оптимизирует расходы на лицензирование без нарушения требований.
Ведение документации и подготовка отчета по лицензированию

Документация лицензий MS SQL сервера должна включать полные сведения о типе лицензии (Core-based или CAL), дате приобретения, номерах лицензий, версиях серверного ПО и количествах лицензированных процессоров или пользователей. Для каждой лицензии фиксируются условия использования и ограничения, указанные в лицензионном соглашении.
Рекомендуется использовать централизованное хранилище документов, например защищённый сетевой каталог с разграничением прав доступа. Каждый документ должен иметь уникальный идентификатор и дату последнего обновления. Необходимо сохранять цифровые копии счетов, сертификатов и электронных лицензий.
Для подготовки отчета по лицензированию собираются данные о всех экземплярах SQL Server: имя сервера, версия, установленное обновление, количество ядер, подключенные CAL и активные инстансы. Используются встроенные средства SQL Server, такие как функции SERVERPROPERTY и DMV sys.dm_os_sys_info, для точного определения аппаратной конфигурации и соответствия лицензии.
Отчет должен содержать таблицу соответствия лицензий установленным инстансам, выявлять несоответствия, недостающие лицензии и резервные экземпляры. Для удобства анализа рекомендуется экспортировать данные в Excel или CSV с фильтрацией по серверу, типу лицензии и дате установки.
После формирования отчета проводится его ревизия ответственным сотрудником с подтверждением соответствия лицензий фактической конфигурации. Отчет хранится минимум 3 года и используется для внутреннего аудита, планирования закупок и подготовки к проверкам со стороны Microsoft.
Вопрос-ответ:
Как проверить, активирована ли лицензия MS SQL Server?
Для проверки активации лицензии можно использовать SQL Server Management Studio (SSMS). Нужно подключиться к серверу, открыть окно запроса и выполнить команду: SELECT SERVERPROPERTY('LicenseType'), SERVERPROPERTY('NumLicenses'). Первый параметр покажет тип лицензии, второй — количество доступных лицензий. Если значения пустые или отсутствуют, это может указывать на то, что лицензия не активирована.
Можно ли узнать версию лицензии через панель управления Windows?
Да, некоторые сведения о лицензии доступны через Панель управления. В разделе «Программы и компоненты» можно найти установленный SQL Server и его версию. Однако для точной информации о типе лицензии и числе подключений рекомендуется использовать системные запросы или утилиту SQL Server Configuration Manager, так как Панель управления не показывает все детали лицензирования.
Что делать, если SQL Server показывает неверное количество лицензий?
Если система сообщает о меньшем или большем числе лицензий, чем у вас есть, нужно проверить соответствие редакции SQL Server и способа лицензирования. В некоторых случаях ошибка возникает после обновления или переноса сервера. Рекомендуется сверить данные через запрос SELECT * FROM sys.server_principals для учетных записей и убедиться, что тип лицензии правильно зарегистрирован. При необходимости можно обратиться к документации Microsoft по корректной активации.
Существуют ли ограничения на проверку лицензии через командную строку?
Да, через командную строку можно получить сведения с помощью утилиты sqlcmd. Например, команда sqlcmd -S localhost -Q "SELECT SERVERPROPERTY('Edition'), SERVERPROPERTY('NumLicenses')" покажет редакцию и количество лицензий. Ограничения связаны с правами пользователя: команда требует учетной записи с административными правами на SQL Server. Без соответствующих прав запрос вернет ошибку доступа.
Как часто рекомендуется проверять состояние лицензии SQL Server?
Проверку стоит проводить при установке или переносе сервера, а также перед крупными обновлениями или изменением числа пользователей. Это позволяет убедиться, что количество подключений соответствует условиям лицензии и избежать ошибок активации. Регулярные проверки помогают выявлять несоответствия до того, как они приведут к ограничению функционала или блокировке работы сервера.
Можно ли проверить легальность лицензии MS SQL сервера без сторонних утилит?
Да, это возможно с помощью встроенных инструментов SQL Server. Один из методов — использовать команду slmgr.vbs на сервере Windows для проверки статуса активации. Для этого откройте командную строку от имени администратора и выполните slmgr.vbs /dli. Она покажет информацию о лицензии, которая активирована на сервере. Также полезно проверить журнал установки SQL Server через SQL Server Configuration Manager или журнал событий Windows, где фиксируются успешные установки и активации. Эти подходы позволяют оценить легальность продукта без применения внешнего ПО.
