Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Szczegóły
| Attribute | Wartość |
|---|---|
| Nazwa produktu | SQL Server |
| Identyfikator zdarzenia | 5120 |
| Źródło zdarzenia | MSSQLSERVER |
| Składnik | SQLEngine |
| Nazwa symboliczna | DSK_FCB_FAILURE |
| Tekst wiadomości | Błąd tabeli: Nie można otworzyć pliku fizycznego "%.*ls". Błąd systemu operacyjnego %d: "%ls". |
Explanation
Program SQL Server nie może otworzyć pliku bazy danych. Błąd systemu operacyjnego podany w komunikacie wskazuje bardziej szczegółowe przyczyny awarii. Ten błąd może być często wyświetlany wraz z innymi błędami, takimi jak 17204 lub 17207.
Akcja użytkownika
Zdiagnozuj i popraw błąd systemu operacyjnego, a następnie spróbuj ponownie wykonać operację. Istnieje wiele stanów, które mogą pomóc firmie Microsoft zawęzić obszar w produkcie, w którym występuje obszar.
Odmowa dostępu
Jeśli występuje Access is Denied błąd systemu operacyjnego = 5, rozważ następujące metody:
Sprawdź uprawnienia, które są ustawione w pliku, sprawdzając właściwości pliku w Eksploratorze Windows. Program SQL Server używa grup systemu Windows do aprowizowania kontroli dostępu w różnych zasobach plików. Upewnij się, że odpowiednia grupa [o nazwach takich jak SQLServerMSSQLUser$ComputerName$MSSQLSERVER lub SQLServerMSSQLUser$ComputerName$InstanceName] ma wymagane uprawnienia do pliku bazy danych wymienionego w komunikacie o błędzie. Aby uzyskać więcej informacji , zobacz Konfigurowanie uprawnień systemu plików na potrzeby dostępu do aparatu bazy danych . Upewnij się, że grupa systemu Windows rzeczywiście zawiera konto uruchamiania usługi SQL Server lub identyfikator SID usługi.
Przejrzyj konto użytkownika, na którym jest obecnie uruchomiona usługa PROGRAMU SQL Server. Aby uzyskać te informacje, możesz użyć Menedżera zadań systemu Windows. Wyszukaj wartość "Nazwa użytkownika" pliku wykonywalnego "sqlservr.exe". Jeśli niedawno zmieniono konto usługi programu SQL Server, pamiętaj, że obsługiwanym sposobem wykonania tej operacji jest użycie narzędzia SQL Server Configuration Manager .
W zależności od typu operacji (otwieranie baz danych podczas uruchamiania serwera, dołączanie bazy danych, przywracanie bazy danych itd.), konto używane do personifikacji i uzyskiwanie dostępu do pliku bazy danych może się różnić. Zapoznaj się z tematem Zabezpieczanie danych i plików dziennika , aby dowiedzieć się, które operacje ustawiają uprawnienia i jakie konta. Użyj narzędzia, takiego jak Windows SysInternals Process Monitor , aby dowiedzieć się, czy dostęp do plików odbywa się w kontekście zabezpieczeń konta uruchamiania usługi wystąpienia programu SQL Server [lub identyfikator SID usługi] lub personifikowanego konta.
Jeśli program SQL Server personifikuje poświadczenia użytkownika logowania, które wykonuje operację ALTER DATABASE lub CREATE DATABASE, zauważysz następujące informacje w narzędziu Monitor przetwarzania (na przykład).
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
Dołączanie plików znajdujących się w magazynie dołączonym do sieci
Jeśli nie możesz ponownie dołączyć bazy danych znajdującej się w magazynie dołączonym do sieci, w dzienniku aplikacji może zostać zarejestrowany komunikat podobny do tego.
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.).
Ten problem występuje, ponieważ program SQL Server resetuje uprawnienia do pliku, gdy baza danych jest odłączona. Podczas próby ponownego dołączenia bazy danych występuje błąd z powodu ograniczonych uprawnień udziału.
Aby rozwiązać ten problem, wykonaj następujące kroki:
Użyj opcji uruchamiania -T, aby uruchomić program SQL Server. Użyj tej opcji uruchamiania, aby włączyć flagę śledzenia 1802 w programie SQL Server Configuration Manager (zobacz Ustawianie flag śledzenia za pomocą funkcji DBCC TRACEON , aby uzyskać informacje na temat 1802). Aby uzyskać więcej informacji na temat zmiany parametrów uruchamiania, zobacz Opcje uruchamiania usługi aparatu bazy danych.
Użyj następującego polecenia, aby odłączyć bazę danych.
exec sp_detach_db DatabaseName goUżyj następującego polecenia, aby ponownie dołączyć bazę danych.
exec sp_attach_db DatabaseName, '\\Network-attached storage_Path\DatabaseMDFFile.mdf', '\\Network-attached storage_Path\DatabaseLDFFile.ldf' go