Как настроить 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 SID.

Уоррен П
источник
Причина, по которой SQL не использует стандартный диалог, заключается в том, что вы не можете выбрать файл, из которого SQL не может прочитать. Что касается того, как настроить безопасность, вы открыты для изменения учетной записи, под которой работает SQL, или вы хотите оставить все так, как сейчас? Если смена учетной записи службы в порядке, об этом легко позаботиться. Мы используем именованные учетные записи, поэтому я не могу провести тестирование с общей учетной записью MSSQLSERVER, чтобы помочь с этим.
cfradenburg
1
Смотрите здесь: dba.stackexchange.com/questions/23864/…
Джон Зигель
Если каждый меняет свои SQL-серверы для работы с обычным идентификатором пользователя при разработке, это может быть "наилучшей практикой". Мне просто интересно, хорошая это идея или нет. Если ручное добавление «NT Service \ MSSQLSERVER» в папки, к которым нужно добавить, является стандартной идеей, я думаю, это было бы наиболее логичным минимальным исправлением, верно? Хотелось бы, чтобы пользовательский интерфейс SSMS сервера SQL был немного проще подключиться к этому скрытому идентификатору учетной записи «NT Server \ xxx».
Уоррен П

Ответы:

5

Для справки «Denali» - это SQL Server 2012. Что касается «путаницы с конечным пользователем», я не все, что касается того, смущен ли конечный пользователь или нет относительно SSMS. Microsoft разработала этот инструмент не для обычного конечного пользователя, а для администратора базы данных и / или пользователя, который должен был управлять базой данных. Таким образом, будет проведено обучение с предоставленными инструментами и их функционированием. Диалоговое окно файла было таким же образом в SSMS с тех пор, как SSMS вышла с SQL Server 2005. Вот почему вы обычно будете видеть большинство придерживающихся инструкций T-SQL для резервного копирования, восстановления или присоединения базы данных, которая использовала его с тех пор ,

Чтобы настроить разрешения файловой системы для SQL Server, вы можете следовать инструкциям MSDN здесь .

То, как обрабатываются учетные записи служб, не было связано с SQL Server или из-за изменений на уровне операционной системы. В Windows 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 вручную. Дополнительные сведения о ручной регистрации имени участника-службы см. В разделе Регистрация имени участника службы для подключений 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
Под конечным пользователем я подразумеваю любую из десятков категорий людей, некоторые из которых достаточно профессиональны и технически компетентны в различных дисциплинах, но которые НЕ могут быть администраторами баз данных. Лично я думаю, что даже администраторы баз данных считают, что пользовательский интерфейс этого инструмента может быть улучшен. Надежный сторонний рынок инструментов является еще одним показателем того, что SSMS, хотя и бесплатна, полностью стоит своей цены.
Уоррен П
1
В 2017 году не стало лучше. Таким образом, короткий ответ: «никогда не станет лучше, узнайте, как это работает, как бы плохо ни разрабатывался пользовательский интерфейс».
Уоррен П
2

Чтобы увидеть / получить доступ к файлам в другой папке, дайте NT SERVICE\MSSQLSERVERразрешения на эту папку. См. Мой ответ, опубликованный в файле .bak, который не виден ни в одном каталоге в SSMS, чтобы увидеть снимки экрана и соответствующие шаги. (Немного отличается от добавления обычных разрешений пользователей / групп к папке.)

Надеюсь, это поможет!

AdamsTips
источник
1

Фактически, если вы попытаетесь выполнить восстановление через SSMS и войдете в систему с помощью Windows Authentication (!), То для вашей учетной записи Windows (а не для «всех») требуются разрешения для этого, а НЕ для службы SQL Server. Учетная запись. Надеюсь, что это устранит путаницу. У учетной записи службы есть и другие потребности. Например, если вы вошли в систему через учетную запись с проверкой подлинности SQL - тогда какие разрешения должна запрашивать операционная система? - В этом случае это будет служебная учетная запись SQL Server. только случай! Это не изменилось с SQL Server 7.0 и, вероятно, даже до этого :)

Андреас Вольтер
источник
1
Не забудьте про учетные данные .
Ремус Русану
Я не уверен, что это устраняет путаницу ... Если вы вошли в систему через WA, вашей учетной записи SQL Server требуются разрешения для восстановления (насколько это касается SQL Server), но учетной записи службы SQL Server требуются разрешения на чтение в файловой системе, чтобы открыть .bakфайл (которого обычно не будет, если он находится в вашем пользовательском каталоге, если это явно не указано).
Бруно