Instaloval jsem na domenovém controleru Windows Server 2012 roli AD FS (Active Directory Federation Services). Při nastavení databáze na používání Windows Internal Database, jsem obdržel následující chybu:
Service 'Windows Internal Database (MSSQL$MICROSOFT##WID)' cannot be started due to the following error: Cannot start service MSSQL$MICROSOFT##WID on computer '.'.
(Windows Internal Database jsem na serveru měl již dříve nainstalované, ale nebylo využíváno.)
V System Event Logu byla tato chyba při spouštění služby:
The MSSQL$MICROSOFT##WID service was unable to log on as NT SERVICE\MSSQL$MICROSOFT##WID with the currently configured password due to the following error:
Logon failure: the user has not been granted the requested logon type at this computer.
Service: MSSQL$MICROSOFT##WID
Domain and account: NT SERVICE\MSSQL$MICROSOFT##WID
This service account does not have the required user right "Log on as a service."
User Action
Assign "Log on as a service" to the service account on this computer. You can use Local Security Settings (Secpol.msc) to do this. If this computer is a node in a cluster, check that this user right is assigned to the Cluster service account on all nodes in the cluster.
Otevřel jsem tedy Local Security Policy a navigoval se do Local Policies –> User Rights Assignment a vybrat Log on as a service. Zde account opravdu přidán nebyl.
Problém je, že zde nelze nastavení účtů editovat.
Pak jsem nalezl tento KB článek http://support.microsoft.com/kb/2832204, který mě přivedl na myšlenku provést nastavení přes GPO.
Otevřeme Group Policy Management (gpmc.msc) a vybereme politiku k editaci.
Zde je nutné se navigovat na Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Local Policies –> User Rights Assignment. Já jsem Log on as a service nastavení našel aplikované v Default Domain Controllers Policy.
Zde Log on as a service nastavení již editovat lze, přidal jsem tedy účet:
“NT SERVICE\MSSQL$MICROSOFT##WID” (pozor nelze použít možnost Browse)
pak jsem provedl gpupdate /force a již korektně spustil službu Windows Internal Database.
Poznámka: Dokonce stačilo tedy přidat jen konkrétní účet NT SERVICE\MSSQL$MICROSOFT##WID a ne NT SERVICE\ALL SERVICES jak je popisováno v uvedeném KB článku.