Получаване на административни привилегии в Microsoft SQL Server, SavePearlHarbor

Още едно копие на хабора

Главно меню

След навигация

След смяната на работната станция започнах да я инсталирам Micorosft SQL Server 2008 R2 и почти се натъкна на традиционния рейк, свързан с подобрената сигурност в тази версия. Ако в Microsoft SQL Server 2005 По подразбиране групата локални администратори е включена в ролята на sysadmin на SQL сървъра, след което през 2008 г. никой не е включен в тази роля:

административни

В резултат на това при инсталацията по подразбиране се получава ситуация, при която никой няма административен достъп до екземпляра, т.е. с този екземпляр не може да се направи нищо друго освен периодично рестартиране. Също така, такава ситуация възниква, когато този, който е инсталирал SQL сървъра, след като се е назначил за единствен администратор, напусне - например тази ситуация е възникнала от нашите администратори.
Тази публикация показва решение на този проблем и предлага автоматично решение на този проблем под формата на скрипт, точно както разказва историята на написването му, илюстрирайки мощта на WMI, която е неприемливо прикрита в литературата и на интернет.

Описание на процедурата

В решението няма нищо неочаквано или революционно:

  1. Рестартирайте екземпляра в единичен потребителски режим
  2. Добавете необходимия потребител към администраторите на сървъра от всеки потребител от групата на локалните администратори
  3. Рестартирайте екземпляра в нормален режим

Описание на дъвчената процедура

Претоварване в еднопотребителски режим
  1. Стартираме добавка за конфигуриране на SQL сървър и спираме необходимия екземпляр (в моя случай екземпляр по подразбиране):
    административни
  2. Отваряне на свойствата на екземпляра:
    получаване
  3. Превключете към раздела Разширено и превъртете свойствата до параметъра Параметри при стартиране:
    административни
  4. Добавете параметър -m; (не забравяйте точка и запетая!). Този параметър означава зареждане на екземпляра в еднопотребителски режим. В този режим всеки член на локалната група администратори има права на sysadmin в екземпляра. Също така, в този режим е възможна само една връзка със сървъра, така че всички приложения, които може да искат да се присъединят към конфигурируемия екземпляр, трябва да бъдат деактивирани. Пълно описание на параметрите на двигателя на базата данни можете да намерите тук:
    получаване
  5. Стартираме екземпляра:
    административни
Задаване на администраторски права за потребител

Тук има много начини, вариращи от свързване към сървър чрез Студио за управление на SQL Server и с помощта на графичната добавка за добавяне на необходимите права и завършва с използване osql. Ще вървим по втория път. Стартиране cmd.exe като потребител от групата на локалните администратори и изпълнете следната команда:
osql -E -S. \ InstanceName -Q "EXEC sp_addsrvrolemember 'DOM \ User', 'sysadmin'", където InstanceName Е името на екземпляра и DOM \ Потребител Е домейн \ потребител, на когото е даден административен достъп до екземпляра. В моя случай (с екземпляра по подразбиране и за потребителя на администратор RU \ venticello) изглежда така:

получаване

Стартиране на екземпляр нормално

Отиваме в обратен ред:

  1. Спиране на екземпляра
  2. Премахване на параметъра -m;
  3. Стартиране на екземпляр

Това е всичко.!

Автоматизация

Въпреки че процедурата не е плашеща и по никакъв начин не е ежедневна, тя е, честно казано, малко скучна и досадна. Един брой екранни снимки е доказателство за това. Аз съм убеден апологет на твърдението, че всичко, което е скучно, трябва да се прави от компютър, а не от човек - затова те са създадени. Затова направих и описах всички тези стъпки под формата на скрипт, предложен на вашето внимание. За да използвате скрипта, той трябва да се изпълнява като потребител с администраторски права на машината с екземпляра, както следва:
cscript/nologo придобиване_admin_rights.js [], където незадължителен параметър име на екземпляр указва екземпляра, на който искате да предоставите администраторски права на стартиращия потребител. Ако пропуснете екземпляр или зададете име MSSQLSERVER, достъп ще бъде предоставен на инстанцията по подразбиране. За пореден път ви напомням, че трябва да се уверите, че по време на процедурата няма приложения, които да се свързват активно към този екземпляр, тъй като те могат да прихващат единствената връзка, осигурена от режим на един потребител.