Sql Server-installatie mislukt nadat de standaardgebruikersrechten zijn verwijderd
Dit artikel helpt u bij het oplossen van een probleem dat optreedt wanneer u Microsoft SQL Server installeert of upgradet nadat u de beveiliging hebt aangescherpt.
Van toepassing op: SQL Server
Symptomen
Overweeg het scenario waarin u Microsoft SQL Server uitvoert in Windows. Als u de beveiliging wilt verbeteren, verwijdert u enkele standaardgebruikersrechten uit de lokale beheerdersgroep. Als u SQL Server op het systeem wilt instellen, voegt u het installatieaccount toe aan de lokale beheerdersgroep.
In dit scenario, als u SQL Server probeert te installeren of bij te werken, mislukt het installatieproces en ontvangt u mogelijk een foutbericht dat lijkt op een van de berichten die als volgt worden vermeld:
Scenario 1: Als een nieuwe installatie mislukt, wordt het volgende foutbericht weergegeven:
Access is denied
Mogelijk ontvangt u ook foutberichten die lijken op het volgende in het bestand Detail.txt :
2009-01-02 13:00:17 SQLEngine: --SqlServerServiceSCM: Waiting for nt event 'Global\sqlserverRecComplete$NIIT' to be created 2009-01-02 13:00:20 SQLEngine: --SqlServerServiceSCM: Waiting for nt event 'Global\sqlserverRecComplete$NIIT' or sql process handle to be signaled 2009-01-02 13:00:20 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC. 2009-01-02 13:00:20 Slp: Access is denied 2009-01-02 13:00:20 Slp: Configuration action failed for feature SQL_Engine_Core_Inst during timing ConfigRC and scenario ConfigRC. 2009-01-02 13:00:20 Slp: System.ComponentModel.Win32Exception: Access is denied 2009-01-02 13:00:20 Slp: at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) 2009-01-02 13:00:20 Slp: at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) 2009-01-02 13:00:20 Slp: at System.Diagnostics.Process.OpenProcessHandle() 2009-01-02 13:00:20 Slp: at System.Diagnostics.Process.get_Handle() 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceBase.WaitSqlServerStart(Process processSql) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerServiceSCM.StartSqlServer(String[] parameters) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlServerStartup.StartSQLServerForInstall(String sqlCollation, String masterFullPath, Boolean isConfiguringTemplateDBs) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.ConfigSQLServerSystemDatabases(EffectiveProperties properties, Boolean isConfiguringTemplateDBs, Boolean useInstallInputs) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.DoCommonDBStartConfig(ConfigActionTiming timing) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlEngine.SqlEngineDBStartConfig.Install(ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcb) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcbCurrent) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, Dictionary<string, string> actionData, PublicConfigurationBase spcbCurrent) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId) 2009-01-02 13:00:20 Slp: at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream) 2009-01-02 13:00:20 Slp: Exception: System.ComponentModel.Win32Exception. 2009-01-02 13:00:20 Slp: Source: System. 2009-01-02 13:00:20 Slp: Message: Access is denied.
Scenario 2: Als een nieuwe installatie van Microsoft SQL Server 2012 of Microsoft SQL Server 2008 R2 mislukt, ontvangt u een van de volgende foutberichten:
Rule "Setup account privileges" failed. The account that is running SQL Server Setup doesn't have one or all of the following rights: the right to back up files and directories, the right to manage auditing and the security log and the right to debug programs. To continue, use an account with both of these rights.
Scenario 3: Als de installatie van SQL Server 2012 of een latere versie mislukt wanneer u een netwerkshare (UNC-pad) opgeeft voor de locatie van de back-upmap, ontvangt u het volgende foutbericht:
SQL Server setup account does not have the `SeSecurityPrivilege` on the specified file server in the path *\<UNC backup location>*. This privilege is required to set folder security in the SQL Server setup program. To grant this privilege, use the Local Security Policy console on this file server to add SQL Server setup account to **Manage auditing and security log** policy. This setting is available in the **User Rights Assignments** section under Local Policies in the Local Security Policy console.
Notitie
Dit probleem treedt op omdat het SQL Server-installatieaccount niet over de
SeSecurityPrivilege
machtigingen beschikt op de bestandsserver die als host fungeert voor de netwerkshare.
Oorzaak
Als u de installatie uitvoert als lokale beheerder, hebt u de volgende gebruikersrechten nodig om de installatie uit te voeren:
Weergavenaam van lokaal groepsbeleidsobject | Gebruikersrecht |
---|---|
Back-upbestanden en mappen maken | SeBackupPrivilege |
Fouten opsporen in programma's | SeDebugPrivilege |
Controle- en beveiligingslogboeken beheren | SeSecurityPrivilege |
Notitie
Zie de sectie Vereisten in de volgende artikelen voor meer informatie over de machtigingen die vereist zijn voor het installeren van SQL Server:
Als een opslagoptie voor gegevensmap of andere directory's (gebruikersdatabasemap, gebruikersdatabaselogboekmap, TempDB-map, TempDB-logboekmap of back-upmap) SMB-bestandsshare gebruikt, vereist het installatieaccount de volgende extra machtigingen op de SMB-bestandsserver, zoals beschreven in SQL Server installeren met SMB-bestandsshareopslag.
SMB Network Share-map | VOLLEDIG BEHEER | SQL-installatieaccount |
---|---|---|
SMB Network Share-map | VOLLEDIG BEHEER | Sql Server- en SQL Server Agent-serviceaccount |
SMB-bestandsserver | SeSecurityPrivilege |
SQL-installatieaccount |
Oplossing
Voer de volgende stappen uit om de rechten toe te voegen aan het installatieaccount:
- Meld u aan als beheerder.
- Selecteer Uitvoeren>starten, typ Beheertools en selecteer VERVOLGENS OK.
- Dubbelklik op Lokaal beveiligingsbeleid.
- Selecteer Lokaal beleid in het dialoogvenster Lokale beveiligingsinstellingen, open Toewijzing van gebruikersrechten en dubbelklik op Back-upbestanden en mappen.
- Selecteer Gebruiker of groep toevoegen in het dialoogvenster Eigenschappen van back-upbestanden en mappen.
- Voer in het dialoogvenster Gebruiker of groepen selecteren het gebruikersaccount in dat u wilt gebruiken voor de installatie en selecteer vervolgens twee keer OK .
Notitie
Voer stap 1 tot en met 6 uit om het gebruikersaccount voor programma's voor foutopsporing toe te voegen en controle- en beveiligingslogboekbeleid te beheren.
- Open in het menu Bestand het dialoogvenster Lokale beveiligingsinstellingen en selecteer Afsluiten om te sluiten.
Veelgestelde vragen (FAQ's)
Waarom is SeSecurityPrivilege
vereist op de bestandsserver voor de back-upmap op de UNC-share?
Deze machtiging is vereist om toegangsbeheerlijsten (ACL's) op te halen in de standaardback-upmap om ervoor te zorgen dat het SQL Server-serviceaccount volledige machtigingen voor de map heeft. Het serviceaccount stelt ook de ACL's in als er machtigingen ontbreken voor het SQL-serviceaccount, zodat een back-up van de map kan worden uitgevoerd. Het installatieprogramma voert deze controles uit voor de standaardback-upmap, zodat er geen fout optreedt als er een back-up wordt uitgevoerd na de installatie (vanwege ontbrekende machtigingen).
Notitie
SeSecurityPrivilege
is vereist om de get/set ACLs
mappen en submappen te wijzigen. Dit geldt zelfs als gebruikers met volledige controlemachtigingen voor de directory's geen machtigingen hebben om informatie uit de map te get/set OWNER
controleren.
Waarom treedt de fout die wordt beschreven in scenario 3 alleen op in Microsoft SQL Server 2012 en latere versies?
Vanaf SQL Server 2012 biedt Microsoft ondersteuning voor gegevens en logboekbestanden op de SMB-bestandsshare. Als onderdeel van deze verbetering wordt de installatie-ervaring verder verbeterd om de beveiligingscontroles aan te scherpen, zodat klanten geen fouten of problemen ondervinden vanwege onvoldoende machtigingen na de installatie. In pre-SQL Server 2012-versies kunnen gebruikers nog steeds het netwerksharepad voor de back-upmap instellen als het SQL Service-account geen machtigingen heeft om een back-up uit te voeren. Deze gebruikers ondervinden echter een fout na de installatie in deze situatie. Deze scenario's worden nu voorkomen wanneer u de installatiecontrole van SQL 2012 start op een netwerkshare.
Meer informatie
Gebruik het hulpprogramma AccessChk.exe om de lijst met bevoegdheden te controleren die momenteel zijn gekoppeld aan het installatieaccount. Zie AccessChk v6.13 om dit hulpprogramma te downloaden.
Gebruik:
accesschk.exe- a \<setup account> *
Bijvoorbeeld:
c:\tools\accesschk.exe -a testdc\setupaccount *
Sample output: SeSecurityPrivilege SeBackupPrivilege SeRestorePrivilege SeSystemtimePrivilege SeShutdownPrivilege SeRemoteShutdownPrivilege SeTakeOwnershipPrivilege SeDebugPrivilege SeSystemEnvironmentPrivilege SeSystemProfilePrivilege SeProfileSingleProcessPrivilege SeIncreaseBasePriorityPrivilege SeLoadDriverPrivilege SeCreatePagefilePrivilege SeIncreaseQuotaPrivilege SeChangeNotifyPrivilege SeUndockPrivilege SeManageVolumePrivilege SeImpersonatePrivilege SeCreateGlobalPrivilege SeTimeZonePrivilege SeCreateSymbolicLinkPrivilege SeInteractiveLogonRight SeNetworkLogonRight SeBatchLogonRight SeRemoteInteractiveLogonRight
Zie Windows-serviceaccounts en -machtigingen configureren voor meer informatie.