Как создать логин Sql Server для учетной записи домена?

14

Все,

У меня Sql Server 2008 установлен на сервере (скажем, Server1 ) в домене (скажем, AD ). У меня также есть учетная запись домена AD \ Sql1 . Это не учетная запись администратора в домене ( AD ), но я хочу, чтобы она была администратором на сервере1 . И затем создайте логин на Sql Server для этой учетной записи домена (не локальной учетной записи).

Как мне это сделать?

Вопросов:

  1. Пользователь AD \ Sql1 , я хочу, чтобы он был администратором на сервере Server1 . Для этого я просто создаю локальную учетную запись с тем же именем пользователя (скажем, Server1 \ Sql1 ) и делаю локальную учетную запись администратором на компьютере. Будет ли эта локальная учетная запись автоматически сопоставлена ​​с учетной записью домена с тем же именем? Может быть, я должен добавить здесь, что CREATE LOGIN [AD\Sql1] FROM WINDOWSне работает для меня. Я попытался и получил сообщение об ошибке user does not exist in Windows(что-то подобное)
  2. Теперь, если вышеуказанная техника работает. Предположим, AD \ Sql1 становится администратором на Sever1 . Итак, теоретически мне не нужно создавать логин Sql для этой учетной записи домена Windows на сервере Sql, верно? Все локальные администраторы, входящие в состав BUILTIT \ Admins, автоматически имеют доступ sysadmin к Sql Server, верно?

Где я неправ? Пожалуйста, поделитесь любыми URL, которые могли бы объяснить эту концепцию лучше.

Изменить: я также должен добавить, что вопросы 1 и 2 важны независимо друг от друга. Я знаю, как добавить учетную запись домена / Windows как sysadmin. Но меня интересует, как работает сопоставление между доменом и локальными учетными записями. Моя цель здесь не в том, чтобы добавить локальную учетную запись в качестве системного администратора, я могу сделать это довольно быстро. Мое намерение состоит не в том, чтобы быть грубым, но быть настолько ясным, насколько это возможно. Если мой вопрос все еще неясен, пожалуйста, дайте мне знать, чтобы я мог добавить больше деталей.

Спасибо,
_UB

Редактировать: Грамматика

UB01
источник

Ответы:

13

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

  • создать логин для учетной записи домена: create login [AD\Sql1] from windows;
  • добавьте логин в группу sysadmin: exec sp_addsrvrolemember 'AD\Sql1', 'sysadmin';

Выполнено. Вы бы достигли того же результата, если бы просто добавили AD\Sqlучетную запись к локальным администраторам через net localgroup Administrators /add AD\Sql1(из оболочки CMD), но это не правильное решение, поскольку оно предоставляет AD\Sql1все привилегии администратора NT в дополнение к предоставлению ему администратора SQL, который не является поэтому в качестве требования указывается ненужное превышение. Кстати, правило, что члены локальной группы «Администраторы» являются администраторами SQL, не является неявным, это явная привилегия, предоставляемая по умолчанию во время установки SQL, и она может быть отозвана, поэтому вы должны проверить ее.

Ремус Русану
источник
Спасибо, этот комментарий содержит некоторую информацию, которую я мог бы использовать. Но у меня есть дополнительный вопрос. Когда я попытался добавить Sql, используя логин CREATE LOGIN [AD\Sql1] FROM WINDOWS, я получил сообщение о том, что пользователь не существует в Windows. Итак, мне пришлось добавить его как привыкший к локальной машине (тогда все работает).
UB01
Я расскажу о том, что вы упомянули о том, что «... локальные администраторы по умолчанию sysasminsна машине». Спасибо, я прочитаю об этом. Но как работает отображение? Между доменными учетными записями и локальными учетными записями с одинаковыми именами.
UB01
Если компьютер, на котором установлен экземпляр SQL Server, является частью домена, вы сможете добавить учетную запись домена без каких-либо проблем.
ДжекЛок
Хорошо, это то, что я думал, но я постоянно получаю эту ошибку: ...user could not be found in windows. Может быть, что-то еще происходит. Я проверю снова.
UB01
1
Я получил сообщение о том, что пользователь не существует в Windows : это означает, что ваш хост-компьютер SQL не является членом доменов AD или членом доверяющего домена AD. Вы должны добавить машину в домен AD. Теперь вы придерживаетесь так называемого подхода «зеркальных учетных записей NT» (возможно, не зная, что вы делаете это ...), и это неправильный подход. Добавьте хостинг SQL в домен AD.
Ремус Русану
2

Подключитесь к вашему экземпляру в SSMS. Расширить безопасность / логины. Rt-нажмите добавить новый логин, введите информацию. Для ролей сервера предоставьте его sysadmin, если вы хотите, чтобы он имел полную власть над экземпляром SQL. Выполнено. Эта учетная запись не должна быть локальной администратором на вашем компьютере Windows, чтобы быть системным администратором в SQL Server.

Эрик Хиггинс
источник
Спасибо за быстрый комментарий. Я понимаю концепцию, которую вы передали в своем ответе. Мой вопрос (может быть, не очень понятный) заключается в том, чтобы понять, как работает связь (или сопоставление) между учетными записями домена и локальными учетными записями. И как это влияет на Sql Server.
UB01
SID создается в главной базе данных для любых учетных записей, учетных записей домена или только SQL Server.
Эрик Хиггинс,
SID created for each account..это концепция, которую я понимаю. Позвольте привести пример: учетная запись такая AD\Sql1же, как Server1\Sql1на сервере. Есть ли у каждого отдельный идентификатор безопасности, который сопоставлен, чтобы ОС знала, что они являются одним и тем же? Это вообще случается? (Я только догадываюсь, я не знаю)
UB01
Понимаю. Вы больше пытаетесь понять кредиты Windows, я думаю. AD и локальные учетные записи Windows не совпадают (даже если имя совпадает). Вот некоторая информация о том, как работают доменные SID, токены доступа. Я надеюсь, что это поможет: technet.microsoft.com/en-us/library/cc785913(v=ws.10).aspx
Эрик Хиггинс,
Спасибо, я прочитаю эту статью и посмотрю, поможет ли это мне лучше понять концепции.
UB01