В системе Windows Server 2008 R2, в которой учетные записи служб используют неанглийский язык отображения, с SQL Server 2008 следующая инструкция Transact-SQL не выполняется:
CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS ...
со следующей ошибкой :
Пользователь Windows NT или группа «NT AUTHORITY \ NETWORK SERVICE» не найдены. Проверьте имя еще раз.
(или то же сообщение на неанглийском языке отображения для учетных записей служб, в зависимости от контекста).
Это же утверждение выполняется успешно, если учетные записи служб используют английский в качестве языка отображения.
Причина кажется очевидной: например, в немецкой системе отображаемое имя для этой учетной записи - NT-AUTORITÄT \ NETZWERKDIENST
, а имя NT AUTHORITY \ NETWORK SERVICE
(с пробел) не распознается. Также нелокализованное имя NT AUTHORITY \ NETWORKSERVICE
(без пробела) не работает.
Мой вопрос: как мне переписать приведенный выше оператор, чтобы он работал независимо от языка отображения? Или мне нужно узнать локализованное имя (в моем случае в InstallScript)? Затем я могу использовать
CREATE LOGIN [NT-AUTORITÄT\NETZWERKDIENST] FROM WINDOWS
, который работает ...