Delen via


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:

  1. Meld u aan als beheerder.
  2. Selecteer Uitvoeren>starten, typ Beheertools en selecteer VERVOLGENS OK.
  3. Dubbelklik op Lokaal beveiligingsbeleid.
  4. Selecteer Lokaal beleid in het dialoogvenster Lokale beveiligingsinstellingen, open Toewijzing van gebruikersrechten en dubbelklik op Back-upbestanden en mappen.
  5. Selecteer Gebruiker of groep toevoegen in het dialoogvenster Eigenschappen van back-upbestanden en mappen.
  6. 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.

  7. 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.