Учетная запись службы SQL Server Windows привилегии и права

12

Мой вопрос: если вы создаете новую учетную запись пользователя домена для каждого из процессов SQL Server, какие разрешения должны быть установлены для каждой учетной записи? Или менеджер конфигурации SQL на самом деле позаботится об этом, и у меня возникла непредвиденная проблема?

Мне довольно часто приходится настраивать Microsoft SQL Server, и я спрашиваю себя, может ли кто-нибудь дать совет по настройке учетных записей, с которыми должны работать службы. ИМО, это было смутно задокументировано Microsoft, хотя они указывают вам правильное направление, мне никогда не удавалось найти какие-либо конкретные примеры.

Подводя итог, что я видел до сих пор:

Для простых развертываний \ сред разработки можно использовать виртуальную учетную запись по умолчанию, которую использует установщик: например, NT SERVICE\MSSQLSERVER

Избегайте использования SYSTEMучетной записи, это не безопасно.

Для производственных и доменных сред рекомендуется использовать либо управляемую учетную запись службы, либо создать учетную запись пользователя домена (не администратора) для каждой службы. Предположительно, если вы используете учетную запись домена во время установки, установщик установит для вас все необходимые разрешения.

При изменении учетной записи службы в существующей установке с виртуальной учетной записи на учетную запись домена рекомендуется использовать диспетчер конфигурации SQL Server для установки новых учетных записей службы. Предположительно, это установит для вас все необходимые разрешения.

Я только что попытался изменить учетную запись службы в существующей установке на учетную запись домена, и это дало бы мне ошибку входа в систему до тех пор, пока я не предоставлю log on as serviceразрешение учетной записи , что противоречит той части, где диспетчер конфигурации SQL Server установит все необходимые разрешения. (Хотя я не уверен, что GPO мог помешать установке этой локальной политики безопасности)

Microsoft предоставляет список разрешений, которые программа установки SQL Server предоставляет на этой странице .

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

SQL Server 2014, контроллер домена находится на Windows Server 2008 R2.

plumdog
источник
Какая версия SQL? Это среда AD? Если да, то каков уровень домена?
Кэтрин Вилльярд
Спасибо, я добавил версии к вопросу. SQL Server 2014, Контроллер домена находится на функциональном уровне Windows Server 2008 R2
1
Это не похоже на расплывчатую документацию для меня. Это выглядит довольно всеобъемлющим. - msdn.microsoft.com/en-us/library/ms143504.aspx
Да, я согласен, в целом документация хорошая, но та часть, в которой я не уверен, была расплывчатой, это то, что я имел в виду. Вы правы, по большому счету документация очень подробная.
сливы

Ответы:

10

Мне часто приходится настраивать MS SQL Server, и я спрашиваю себя, может ли кто-нибудь дать совет по настройке учетных записей, с которыми должны работать службы. ИМО, это было смутно задокументировано Microsoft, хотя они указывают вам правильное направление, мне никогда не удавалось найти какие-либо конкретные примеры.

На самом деле это довольно тщательно документировано: http://msdn.microsoft.com/en-us/library/ms143504.aspx

Есть ли какая-то часть, в которой вы не уверены?

Для простых развертываний \ сред разработки можно использовать виртуальную учетную запись по умолчанию, которую использует установщик: например, NT SERVICE \ MSSQLSERVER

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

Для производственных и доменных сред рекомендуется использовать либо управляемую учетную запись службы, либо создать учетную запись пользователя домена (не администратора) для каждой службы.

Опять же, зависит, но в целом я бы согласился (контрпримером были бы группы доступности, в которых имеет смысл использовать одну учетную запись домена во всех случаях).

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

Если нет сбоя и т. Д., Это будет сделано. Я не уверен, почему "якобы" часть.

При изменении учетной записи службы в существующей установке с виртуальной учетной записи на учетную запись домена рекомендуется использовать диспетчер конфигурации SQL Server для установки новых учетных записей службы. Предположительно, это установит для вас все необходимые разрешения.

При изменении любой службы для SQL Server всегда используйте SSCM. Всегда. Период. Это установит права доступа для новой учетной записи к основам. Если бы до того, как использовалась локальная системная учетная запись и было получено неограниченное разрешение на все в системе, я бы ожидал, что что-то не получит разрешения после изменения из-за более жесткого контроля безопасности. Это не ошибка SQL Server SSCM, а ошибка администратора в том, что он не предоставил надлежащие разрешения EXTRA (например, доступ к сетевому ресурсу, папкам с ограниченным доступом, элементам вне области установки SQL Server и т. Д.)

Я только что попытался изменить учетную запись службы в существующей установке на учетную запись домена, и это дало бы мне ошибку входа в систему, пока я не предоставлю учетной записи разрешение «вход в систему как служба», что противоречит той части, где диспетчер конфигурации SQL Server будет устанавливать любые необходимые разрешения. (Хотя я не уверен, что GPO мог помешать настройке этой локальной политики безопасности)

Похоже, что объект групповой политики вызывает проблемы (IMHO). Не будет в первый раз :)

Итак, мой вопрос: если вы создаете новую учетную запись пользователя домена для каждого из процессов SQL Server, какие разрешения должны быть установлены для каждой учетной записи?

Я бы явно установил любые разрешения, помимо тех, которые указаны в указанной выше ссылке msdn (также предоставленной @joeqwerty и в вашем OP). Например, в папке «backup» на общем сетевом ресурсе добавлен новый диск для хранения новых баз данных (где установка уже была запущена, но диск не существует) и т. Д.

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

Если с сервером что-то не сломано, их не нужно вводить вручную.

Шон Галларди
источник
Спасибо за ваш ответ, я согласен с вашими комментариями. Я установил SQL-сервер на другой чистой виртуальной машине, чтобы проверить это, и я смог переключиться с виртуальной учетной записи NT SERVICE / MSSQLSERVER на учетную запись пользователя домена, и это работало без проблем. Поэтому я думаю, что ответ, как вы сказали, с помощью диспетчера конфигурации SQL Server, чтобы изменить учетные записи пользователей службы, и никаких дополнительных разрешений не требуется.
сливы
Еще один комментарий, извините, я мог бы прояснить свой вопрос, поставив основной вопрос в верхней части поста, который я сделаю в будущем. Главный вопрос, в котором я не был уверен, был; [если вы создаете новую учетную запись пользователя домена для каждого из процессов SQL Server, какие разрешения должны быть установлены для каждой учетной записи? ...]. Причина, по которой я чувствовал, что документация была неопределенной в этой части, заключается в том, что есть список установленных разрешений, но неясно, будет ли SSCM устанавливать их для вас.
сливы
@plumdog В соответствии с вашим вторым комментарием, большинство разрешений предоставляется установщиком. С этим связаны виртуальная учетная запись службы и sid, поэтому SSCM всегда следует использовать так, чтобы передача и разрешение разрешений, связанных с этим, выполнялись правильно, среди прочего, например, безопасность, связанная с шифрованием главного ключа службы и т. Д. .
Шон Gallardy