Привілеї та права служби облікового запису служби SQL Server


12

Моє запитання полягає в тому, що якщо ви створюєте новий обліковий запис користувача домену для кожного з процесів SQL Server, які дозволи потрібно встановити для кожного облікового запису? Або менеджер конфігурації SQL насправді піклується про це, і у мене просто непередбачена проблема?

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

Підсумовуючи те, що я бачив до цього часу:

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

Уникайте використання SYSTEMоблікового запису, це не безпечно.

Для виробництва та в доменних середовищах рекомендується використовувати обліковий запис керованої служби або створити обліковий запис користувача домену (не адміністратора) для кожної служби. Нібито, якщо ви користуєтесь обліковим записом домену під час встановлення, інсталятор встановить необхідні дозволи для вас.

Якщо ви змінюєте обліковий запис служби при наявній установці з віртуальної на доменну, рекомендується використовувати менеджер конфігурації SQL Server для встановлення нових облікових записів послуг. Нібито це встановить усі необхідні дозволи для вас.

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

Microsoft надає перелік дозволів, які надає настройка SQL Server на цій сторінці .

Але мені незрозуміло, чи це те, що я повинен робити вручну для користувача, якого я створюю, щоб запустити службу, або, використовуючи менеджер конфігурації SQL, слід автоматично встановлювати ці дозволи.

Контролер домену SQL Server 2014 знаходиться на Windows Server 2008 R2.


Яка версія SQL? Це середовище AD? Якщо так, то який рівень домену?
Кетрін Вільярд

Дякую, я додав версії до питання. Контролер домену SQL Server 2014 знаходиться на функціональному рівні для Windows Server 2008 R2

1
Для мене це не схоже на розпливчасту документацію. Це виглядає досить всебічно. - msdn.microsoft.com/en-us/library/ms143504.aspx

Так, я згоден, документація в цілому хороша, але те, про що я не впевнений, було невиразним, - це я мав на увазі. Ви маєте рацію, загалом документація дуже детальна.
plumdog

Відповіді:


10

Мені досить часто доводиться налаштовувати MS SQL Server і цікавився, чи може хтось надати поради щодо налаштування облікових записів, на яких повинні працювати служби. ІМО це було нечітко зафіксовано Microsoft, хоча вони вказують на вас у правильному напрямку, я ніколи не зміг знайти конкретних прикладів.

Це насправді зафіксовано досить ретельно: http://msdn.microsoft.com/en-us/library/ms143504.aspx

Чи є частина того, в якому ви не впевнені?

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

Це буде залежати від середовища. Я особисто ненавиджу пошук сервера, який налаштовує хтось за допомогою локального облікового запису, і просить отримати доступ до мережевих ресурсів деякий час у майбутньому, серед інших питань.

Для виробництва та в доменних середовищах рекомендується використовувати обліковий запис керованої служби або створити обліковий запис користувача домену (не адміністратора) для кожної служби.

Знову ж, залежить, але я, як правило, погодився (зустрічним прикладом можуть бути групи доступності, де є сенс використовувати один доменний обліковий запис у всіх примірниках).

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

Якщо не буде збою тощо, це буде робити. Я не впевнений, чому "нібито" частина.

Якщо ви змінюєте обліковий запис служби при наявній установці з віртуальної на доменну, рекомендується використовувати менеджер конфігурації SQL Server для встановлення нових облікових записів послуг. Нібито це встановить усі необхідні дозволи для вас.

Змінюючи будь-яку з служб для SQL Server, завжди використовуйте SSCM. Завжди. Період. Вона встановить дозволи для нового облікового запису основними. Якщо до використання облікового запису локальної системи та необмеженого дозволу на все, що було в системі, я б очікував, що після зміни не вдасться дозволів після зміни через більш жорстку контрольовану безпеку. Це не помилка SSCM SQL Server, це помилка адміністратора в тому, що не надає належних дозволів EXTRA (наприклад, доступ до загальної мережі, папки з обмеженим доступом, пункти поза межами встановлення SQL Server тощо).

Я щойно спробував змінити обліковий запис служби в існуючій установці на обліковий запис домену, і це призвело б до відмови входу в систему, доки я не надав дозволу "увійти як сервіс", що суперечить частині, де менеджер конфігурації SQL Server встановить будь-яку необхідну дозволи. (Хоча я не впевнений, чи може групова організація перешкоджала встановленню цієї локальної політики безпеки)

Здається, що груповий колектив викликає проблему (IMHO). Був би не перший раз :)

Отже, моє запитання полягає в тому, що якщо ви створюєте новий обліковий запис користувачів домену для кожного з процесів SQL Server, які дозволи потрібно встановити для кожного облікового запису?

Я б чітко встановив будь-які дозволи за межами зазначених у посиланні msdn, яке я маю вище (також надане @joeqwerty та у вашій ОП). Наприклад, у папці "резервного копіювання" на мережевій спільній доступності, на новому диску, доданому для зберігання нових баз даних (де інсталяція вже виконувалася, але накопичувач не існував) тощо.

Але мені незрозуміло, чи це те, що я повинен робити вручну для користувача, якого я створюю, щоб запустити службу, або, використовуючи менеджер конфігурації SQL, слід автоматично встановлювати ці дозволи.

Якщо щось не вкрай зламано з сервером, їх не потрібно вручну вводити.


Дякую за вашу відповідь, я згоден з вашими коментарями. Я встановив SQL-сервер на інший чистий VM, щоб перевірити це, і мені вдалося перейти з віртуальної облікової записи NT SERVICE / MSSQLSERVER на обліковий запис користувача домену, і він працював без проблем. Тому я думаю, що відповідь, як ви вже сказали, використовуйте диспетчер конфігурації SQL Server, щоб змінити логотипи облікового запису користувача служби, і додаткові дозволи не потрібні.
плюд

Ще один коментар, вибачте, що я міг зробити своє питання зрозумілішим, поставивши свою основну точку у верхній частині посади, яку я буду робити в майбутньому. Основне питання, в якому я не був впевнений, було; [якщо ви створюєте новий обліковий запис користувача для кожного з процесів на SQL Server, які дозволи потрібно встановити для кожного облікового запису? ...]. Причина, по якій я вважав, що в цій частині документація була невиразною, полягає в тому, що існує список дозволів, які встановлюються, але не є чітким, чи SSCM встановить їх для вас.
плюд

@plumdog На ваш другий коментар більшість дозволів надає інсталятор. Віртуальний обліковий запис служби та sid прив’язані до цього, тому SSCM завжди повинен використовуватися для того, щоб передача та випуск дозволів, пов'язаних із цим, виконувалися правильно, серед іншого, наприклад, безпека, прив'язана до шифрування головного сервісу ключа служби тощо. .
Шон Галларді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.