Делегирование прав на перезапуск службы windows 2008

Необходимо дать пользователю возможность перезапускать службу MSSQL под Windows 2008 без предоставления прав администратора.

Поехали:

Узнаем текущие права на службу

PS C:\Users\lexit> sc.exe sdshow mssqlserver

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;C
CDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
PS C:\Users\lexit>

S: — System Access Control List (SACL)
D: — Discretionary ACL (DACL)

(A, Allow)  (D, Deny).

CC - SERVICE_QUERY_CONFIG
LC - SERVICE_QUERY_STATUS
SW - SERVICE_ENUMERATE_DEPENDENTS
LO - SERVICE_INTERROGATE
CR - SERVICE_USER_DEFINED_CONTROL
RC - READ_CONTROL
RP - SERVICE_START
WP - SERVICE_STOP
DT - SERVICE_PAUSE_CONTINUE

В нашем случае нам необходимо поработать с атрибутами

RP - SERVICE_START
WP - SERVICE_STOP
DT - SERVICE_PAUSE_CONTINUE

Последние 2 буквы — группа пользователей

AU Authenticated Users
AO Account operators
RU Alias to allow previous Windows 2000
AN Anonymous logon
AU Authenticated users
BA Built-in administrators
BG Built-in guests
BO Backup operators
BU Built-in users
CA Certificate server administrators
CG Creator group
CO Creator owner
DA Domain administrators
DC Domain computers
DD Domain controllers
DG Domain guests
DU Domain users
EA Enterprise administrators
ED Enterprise domain controllers
WD Everyone
PA Group Policy administrators
IU Interactively logged-on user
LA Local administrator
LG Local guest
LS Local service account
SY Local system
NU Network logon user
NO Network configuration operators
NS Network service account
PO Printer operators
PS Personal self
PU Power users
RS RAS servers group
RD Terminal server users
RE Replicator
RC Restricted code
SA Schema administrators
SO Server operators
SU Service logon user

Группа пользователей AD которые будут иметь право на перезапуск службы SQL_WMS_RESTART

Узнаем SID группы

PS C:\Users\lexit> $AdObj = New-Object System.Security.Principal.NTAccount("SQL_WMS_RESTART")
PS C:\Users\lexit> $strSID = $AdObj.Translate([System.Security.Principal.SecurityIdentifier])
PS C:\Users\lexit> $strSID.Value
S-1-5-21-4081676354-3058606459-383125318-6169

В итоге ключ на право перезапуска будет иметь следующий вид:

(A;;RPWPDT;;;S-1-5-21-4081676354-3058606459-383125318-6169)

Целиком команда на установку прав будет такая:

 

sc sdset mssqlserver D:(A;;RPWPDT;;;S-1-5-21-4081676354-3058606459-383125318-6169)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Проверяем
sc \\server stop mssqlserver

Делегирование прав на перезапуск службы windows 2008: 2 комментария

  1. Николай

    аа черт!!
    перезаписал все права
    в команде дал только права на перезапуск и только одному (не скопипастил старые права)
    все к чертям перезаписалось
    теперь служба больше нигде никем не видна

    как можно восстановить?

  2. Николай

    так еще я пробовал сид пользователя подсунуть а не группы
    и по результатам проверки — он не может перезапускать
    то ли сид пользователя не съелся,
    то ли я очепятался
    выручайте

    ps экспериментировал со спулером .. хорошо не на рабочем процессе

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.