Як налаштувати SQL Server 2012, щоб він міг відновлювати та бачити файли в моєму обліковому записі користувача?


10

У мене на комп’ютері працює екземпляр SQL Server 2012, і відповідно до сторінки сервісу він входить як обліковий запис "NT Service \ MSSQLSERVER". Однак я не можу побачити цю назву акаунта більше ніде, в тому числі в області "Місцеві користувачі та групи" на екрані управління комп'ютером, оскільки, як зазначено в посиланні нижче, це не обліковий запис користувача, це ім'я служби, у цьому полі, що Microsoft настільки корисно позначив "акаунт". У цей момент я бачу, як багато людей плутаються.

Завдання, яку я намагаюся виконати, - відновити файли, використовуючи діалогове вікно SSMS "Знайти файл резервного копіювання", який використовує діалог повністю на відміну від будь-якого зі стандартних відкритих діалогових вікон файлів Windows, ймовірно, тому, що він виконує "віддалену" роботу та працює з Контекст безпеки SQL-сервера, ще одне багате джерело плутанини кінцевих користувачів, я сподіваюся, що це питання може допомогти з'ясувати.

Поки, якщо я хочу відновити резервний .mdf / .bak файл, який я маю в одній із моїх папок, я повинен встановити цю папку для читання всім, або я не можу потрапити туди за допомогою SQL Server "Знайти резервну копію. Файл ". Мені здається, що ви користуєтесь графічним інтерфейсом, спілкуючись із службою, яка має інші облікові записи та права користувачів, ніж ви, що ніхто з Microsoft навіть не дбав про це зрозуміти, дуже заплутаний навіть тоді, коли я маю багаторічний досвід роботи з адміністрацією системи Windows .

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

Повідомлення на форумах, як це , навіть співробітники Microsoft говорять, що "це складно", і що "знову змінилося" в Деналі. Як це працює зараз у SQL Server 2012 та як я можу додати дозвіл на читання файлів, що належать Користувачам, до безпеки двигуна SQL Database SID.


Причина того, що SQL не використовує стандартне діалогове вікно, тому ви не можете вибрати файл, з якого SQL не може прочитати. Щодо того, як налаштувати безпеку, ви відкриті для зміни облікового запису, під яким працює SQL, або хочете залишити його таким, яким він є зараз? Якщо зміна облікового запису послуги нормально, це можна легко подбати. Ми використовуємо названі облікові записи, тому я не можу провести тестування з загальним обліковим записом MSSQLSERVER, щоб допомогти у цьому.
cfradenburg


Якщо всі змінюють свої SQL-сервери для запуску із звичайним ідентифікатором користувача під час розробки, це може бути "найкращою практикою". Мені просто цікаво, це гарна ідея чи ні. Якщо вручну додавати "NT Service \ MSSQLSERVER" до папок, до яких потрібно додати, це стандартна ідея, я думаю, це було б найбільш логічним мінімальним виправленням, правда? Я хочу, щоб інтерфейс інтерфейсу SMS-сервера SMS був трохи легше підключитися до цього прихованого ідентифікатора облікового запису "NT Server \ xxx".
Warren P

Відповіді:


5

Для довідки "Denali" - це SQL Server 2012. Що стосується "плутанини кінцевих користувачів", я не все, що стосується того, заплутаний чи ні кінцевий користувач щодо SSMS. Microsoft не розробила цей інструмент для звичайного кінцевого користувача, але для адміністратора бази даних та / або користувача, який повинен був керувати базою даних. Тому буде крива навчання із наданими інструментами та їх функціонуванням. Діалогове вікно файлу саме таким чином було в SSMS з часу виходу SSMS з SQL Server 2005. Саме тому ви, як правило, побачите більшість палиць із твердженнями T-SQL для резервного копіювання, відновлення або приєднання бази даних, яка з цього часу використовує його. .

Щоб налаштувати дозволи файлової системи за допомогою SQL Server, ви можете слідувати інструкціям MSDN тут .

Те, як керувати обліковими записами послуг, не було або через SQL Server, це було пов'язано зі зміною на рівні операційної системи. Window Server 2008 R2 розмістив трохи більше рівня безпеки навколо облікових записів служб. Ваша перевага полягає в тому, що обліковий запис служби може легше отримувати доступ до ресурсів домену, навіть якщо він встановлений із налаштуваннями за замовчуванням. Це посилання дає досить детальний вигляд способів обробки дозволів облікових записів служб за допомогою SQL Server 2012. Витяг із посилання наведено нижче щодо Віртуальних облікових записів, які використовуються за замовчуванням у SQL Server 2012. Також є посилання, наведене в статті, що детальніше дискусія про концепцію облікового запису служби з Windows, тут. Це з Window Server 2008 R2, але я вважаю, що досі це стосується Window Server 2012 та, ймовірно, Window Server 2012 R2.

Віртуальні рахунки

Віртуальними обліковими записами в Windows Server 2008 R2 та Windows 7 керуються локальними обліковими записами, які надають такі функції для спрощення адміністрування сервісу. Віртуальним обліковим записом керує автоматично, і віртуальний обліковий запис може отримати доступ до мережі у доменному середовищі. Якщо значення за замовчуванням використовується для облікових записів послуг під час налаштування SQL Server у Windows Server 2008 R2 або Windows 7, використовується віртуальний обліковий запис, що використовує ім'я екземпляра як ім'я служби у форматі NT SERVICE \. Сервіси, що працюють як віртуальні акаунти, отримують доступ до мережевих ресурсів, використовуючи облікові дані комп'ютерного облікового запису у форматі \ $. Вказуючи віртуальний рахунок для запуску SQL Server, залиште пароль порожнім. Якщо віртуальний рахунок не зареєструє ім'я головного сервісу (SPN), зареєструйте SPN вручну. Щоб отримати додаткові відомості про реєстрацію SPN вручну, див. Реєстрація основного імені служби для з'єднань Kerberos. Примітка Примітка. Віртуальні облікові записи не можна використовувати для екземпляра кластера відмови від SQL Server, оскільки віртуальний рахунок не буде мати однаковий SID на кожному вузлі кластера.

У наступній таблиці наведено приклади імен віртуальних облікових записів.

Екземпляр служби сервера Database Engine: NT SERVICE \ MSSQLSERVER Іменований екземпляр служби Database Engine з назвою PAYROLL: NT SERVICE \ MSSQL $ PAYROLL Служба агента SQL Server за типовим екземпляром SQL Server: NT SERVICE \ SQLSERVERAGENT Служба агента SQL Server на екземпляр SQL Server з іменем PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


3
Під кінцевим користувачем я маю на увазі будь-яку з десятків категорій людей, деякі досить професійні та технічно компетентні в різних дисциплінах, але які НЕ можуть бути DBA. Особисто я думаю, що навіть DBA виявлять, що інтерфейс користувача на цьому інструменті може бути покращений. Міцний ринок сторонніх інструментів - ще один показник того, що SSMS, хоча і безкоштовно, цілком вартує ціни.
Warren P

1
У 2017 році він не покращився. Отже, коротка відповідь: "Ніколи не покращиться, дізнайтеся, як це працює, як би погано не розроблений інтерфейс користувача".
Warren P

2

Щоб побачити / отримати доступ до файлів в іншій папці, надайте NT SERVICE\MSSQLSERVERдозволи на папку. Дивіться мою відповідь, розміщену у .bak-файлі, який не відображається в жодному каталозі SSMS для екранного знімка та відповідних кроків (Трохи відрізняється від додавання звичайних дозволів користувача / групи до папки.)

Сподіваюся, що це допомагає!


1

Насправді, якщо ви намагаєтесь відновити через SSMS, і ви ввійшли в систему через автентифікацію Windows (!), Для цього потрібні ваші облікові записи Windows (а не "всі") - НЕ послуга SQL Server Обліковий запис. Сподіваюсь, що усуне плутанина. У обліковому записі служби є інші потреби. Наприклад, якщо ви входили через обліковий запис, що підтверджує автентифікацію SQL - то, які дозволу слід запитувати операційній системі? - У цьому буде обліковий запис служби SQL Server Це не змінилося з часу SQL Server 7.0 і, мабуть, навіть до цього :)


1
Не забувайте про облікові дані .
Рем Русану

Я не впевнений, що це усуває плутанину ... Якщо ви ввійшли через WA, ваш обліковий запис SQL Server потребує дозволів на відновлення (що стосується SQL Server), але для облікового запису служби SQL Server потрібні дозволи на читання у файловій системі, щоб відкрити .bakфайл (якого, як правило, не буде, якщо він знаходиться у вашому каталозі користувачів, якщо явно не надано).
Бруно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.