Назад | Перейти на главную страницу

Может ли групповая политика мешать установке Sql Server Express?

У нас есть программный пакет, который наши клиенты устанавливают на ноутбуки своих пользователей.

Часть установщика запускает MS Sql Server Express 2014.

Мы передаем программе установки параметры командной строки, которые должны разрешить вход в SA и предоставить права sqladmin группе Windows BUILTIN \ Administrators.

Запускаем командную строку установщика:

SETUP.EXE /QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQL /INSTANCENAME=SQLEXPRESS /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /SECURITYMODE=SQL /SAPWD="ASecretPassword"

AIUI, / SECURITYMODE = SQL должен разрешить вход в SA, и / SQLSYSADMINACCOUNTS = должен предоставить права sqladmin группе Windows.

Документация по этим аргументам находится здесь:

Установите SQL Server из командной строки

И на каждой машине, которую я пробую, и на машинах клиента я вижу именно эту командную строку в нашем журнале установки.

Но на машине клиента эти аргументы, похоже, не действуют.

Когда я запускаю следующий запрос:

SELECT name, is_disabled
    FROM master.sys.server_principals sp
    JOIN master.sys.server_role_members sr
    ON sr.member_principal_id = sp.principal_id
    WHERE sr.role_principal_id = 3

На машине, на которую я установил программное обеспечение, я вижу:

name                           type_desc        is_disabled
sa                             SQL_LOGIN        False
BUILTIN\Administrators         WINDOWS_GROUP    False
NT SERVICE\SQLWriter           WINDOWS_LOGIN    False
NT SERVICE\Winmgmt             WINDOWS_LOGIN    False
NT Service\MSSQL$SQLEXPRESS    WINDOWS_LOGIN    False
DESKTOP1\KT Developer          WINDOWS_LOGIN    False

Чего я и ожидал.

Но когда пользователь запускает тот же запрос на машине в своем домене после установки нашего программного обеспечения, он видит:

name                           type_desc        is_disabled
sa                             SQL_LOGIN        True

И это несмотря на то, что мы передали аргументы установке Sql Server Express, сообщающие, что нужно включить вход в SA и добавить авторизацию для BUILTIN / Administrators. Мы не только не видим включенного SA или прав администратора, предоставленных BUILTIN / Administrators, мы не видим прав, предоставленных стандартным службам Windows.

На этом этапе я готов сообщить клиенту, что проблема в его собственных групповых политиках безопасности, и сказать им, что им нужно будет изменить политики, мы ничего не можем сделать.

Но прежде чем я это сделаю, я искал подтверждения того, что единственная причина, по которой в установленной базе данных Sql Express нет административных пользователей, которых мы сказали установщикам, заключается в том, что это предотвращают собственные групповые политики клиента.

Может ли кто-нибудь придумать другую причину, по которой это может происходить?


Некоторые дополнительные пояснения.

Это приложение и установщик, которые уже много лет работают у многих клиентов. У одного клиента он перестал работать после обновления Windows 1809.

Установка не выполняется на чистом ноутбуке с новой установкой Windows 10 и без дополнительного программного обеспечения.

Что ж, в этом случае, как и во многих других, оказывается, что то, что пользователь сообщает, что происходит после того, как он что-то делает, не имеет никакого смысла, потому что либо пользователь не говорит вам, что происходит, либо он не говорит вам, что он делает.

В этом случае, когда пользователь выполнял установку на «чистую» машину, он устанавливал на тот, на котором приложение было установлено, а затем удалено, но на котором не был удален SQL Server Express.

Мои изменения в установке Sql Server Express для включения SA и BUILTIN \ Administrators не вступали в силу не из-за политик безопасности, а потому, что установщик SQL Server Express не запускался, если бы он уже присутствовал.