Sdílet prostřednictvím


MSSQLSERVER_5120

platí pro:SQL Server

Podrobnosti

Vlastnost Hodnota
Název produktu SQL Server
ID události 5120
Zdroj událostí MSSQLSERVER
Součást SQLEngine
Symbolický název DSK_FCB_FAILURE
Text zprávy Chyba tabulky: Nelze otevřít fyzický soubor "%.*ls". Chyba operačního systému %d: "%ls".

Explanation

SQL Server nemohl otevřít soubor databáze. Chyba operačního systému uvedená ve zprávě odkazuje na konkrétnější podkladové důvody selhání. Tato chyba se může běžně zobrazovat společně s dalšími chybami, jako jsou 17204 nebo 17207.

Akce uživatele

Diagnostikujte a opravte chybu operačního systému a pak operaci opakujte. Existuje několik stavů, které můžou microsoftu pomoct zúžit oblast v produktu, ve kterém se tato oblast vyskytuje.

Přístup byl odepřen.

Pokud dochází k chybě operačního Access is Denied systému = 5, zvažte tyto metody:

  • Zkontrolujte oprávnění, která jsou nastavená v souboru, a to tak, že se podíváte na vlastnosti souboru v Průzkumníku Windows. SQL Server používá skupiny Systému Windows ke zřízení řízení přístupu pro různé prostředky souborů. Ujistěte se, že příslušná skupina [s názvy, jako je SQLServerMSSQLUser$ComputerName$MSSQLSERVER nebo SQLServerMSSQLUser$ComputerName$InstanceName] má požadovaná oprávnění k databázovému souboru uvedenému v chybové zprávě. Další podrobnosti najdete v tématu Konfigurace oprávnění systému souborů pro přístup k databázovému stroji . Ujistěte se, že skupina Windows skutečně obsahuje spouštěcí účet služby SQL Server nebo identifikátor SID služby.

  • Zkontrolujte uživatelský účet, pod kterým je aktuálně spuštěná služba SQL Serveru. Tyto informace můžete získat pomocí Správce úloh systému Windows. Vyhledejte hodnotu User Name (Uživatelské jméno) pro spustitelný souborsqlservr.exe. Pokud jste nedávno změnili účet služby SYSTÉMU SQL Server, mějte na paměti, že podporovaný způsob, jak tuto operaci provést, je použít nástroj SQL Server Configuration Manager .

  • V závislosti na typu operace (otevírání databází při spuštění serveru, připojení databáze, obnovení databáze atd.) se může lišit účet, který se používá pro zosobnění a přístup k souboru databáze. Projděte si téma Zabezpečení dat a souborů protokolů a zjistěte, která operace nastavuje oprávnění a jaké účty. Pomocí nástroje, jako je Windows SysInternals Process Monitor , zjistěte, jestli se přístup k souborům děje v kontextu zabezpečení spouštěcího účtu služby instance SYSTÉMU SQL Server [nebo SID služby] nebo zosobněného účtu.

    Pokud SQL Server zosobní přihlašovací údaje uživatele přihlašovacích údajů, které spouští operaci ALTER DATABASE nebo CREATE DATABASE, uvidíte v nástroji Sledování procesů (příklad) následující informace.

    Date & Time:      3/27/2010 8:26:08 PM
    Event Class:        File System
    Operation:          CreateFile
    Result:                ACCESS DENIED
    Path:                  C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\MSSQL\DATA\attach_test.mdf
    TID:                   4288
    Duration:             0.0000366
    Desired Access:Generic Read/Write
    Disposition:        Open
    Options:            Synchronous IO Non-Alert, Non-Directory File, Open No Recall
    Attributes:          N
    ShareMode:       Read
    AllocationSize:   n/a
    Impersonating: DomainName\UserName
    

Připojení souborů, které se nacházejí v úložišti připojeném k síti

Pokud nemůžete znovu připojit databázi, která se nachází v úložišti připojeném k síti, může být zpráva podobná této chybě zaznamenána v protokolu aplikace.

Msg 5120, Level 16, State 101, Line 1 Unable to open the physical file "\\servername\sharename\filename.mdf". Operating system error 5: (Access is denied.).

K tomuto problému dochází, protože SQL Server resetuje oprávnění k souborům při odpojení databáze. Při pokusu o opětovné připojení databáze dojde k chybě kvůli omezeným oprávněním ke sdílené složce.

Pokud chcete problém vyřešit, postupujte takto:

  1. K spuštění SQL Serveru použijte možnost -T spuštění. Tuto možnost spuštění použijte k zapnutí příznaku trasování 1802 v nástroji SQL Server Configuration Manager (informace o verzi 1802 naleznete v tématu Nastavení příznaků trasování pomocí nástroje DBCC TRACEON ). Další informace o tom, jak změnit spouštěcí parametry, naleznete v tématu Možnosti spouštění služby databázového stroje.

  2. K odpojení databáze použijte následující příkaz.

     exec sp_detach_db DatabaseName
     go 
    
  3. K opětovnému připojení databáze použijte následující příkaz.

    exec sp_attach_db DatabaseName, '\\Network-attached storage_Path\DatabaseMDFFile.mdf', '\\Network-attached storage_Path\DatabaseLDFFile.ldf'
    go