Podczas instalacji skryptu dla bazy AdventureWorks2008R2 OLTP instalowanego na SQL Server 2008R2 w systemie Windows XP SP3 uzyskujemy błąd:
„Operating system error -2147024891: „0x80070005 filestream”

W internecie można znaleźć kilka różnych opisów tego problemu. Poniżej przedstawiam jedno z działających rozwiązań.

Generalnie chodzi o to, że MS SQL Server 2008 R2 uruchomiony jest z poświadczeniami konta wbudowanego:

NT AUTHORITY\NETWORK SERVICE i nie ma wtedy odpowiednich
uprawnień do założenia folderu z FILESTREAM podczas zakładania bazy.

Uzyskujemy wtedy taki komunikat:

"Below is the error using C:\Data
STREAMFCB::Startup: Operating system error 0x80070005(Access is denied.)
occurred while creating or opening file 'c:\data\filestreamP1'. Diagnose and
correct the operating system error, and retry the operation."

Jedną z rad jest odinstalowanie „Aktualizacji zabezpieczeń systemu Windows KB956572„.

Ale co gdy nie mamy zainstalowanej łatki lub odinstalowanie nie pomaga ?

Ja na serwerze zatrzymałem usługę „SQL SERVER” oraz „SQL Full-Text Filter Daemon Launcher” a następnie
uruchomiłem ją z logując się kontem wbudowanym jako LocalSystem.

Instalacja przebiegła prawidłowo.

Podsumowując należy:

  1. Uruchomić SQL Server Configuration Manager
  2. W SQL Server Services wybrać:
    1. SQL Server. Kliknąć ppm wybrać properties. Po otwarciu okna w Built-in-account ustawić LocalSystem.
    2. Kliknąć na OK. Wtedy nastąpi restart.
    3. SQL Full-Text Filter Daemon Launcher. Po otwarciu okna w Built-in-account ustawić LocalSystem.
    4. Kliknąć na OK. Wtedy nastąpi restart.
  3. Uruchomić SSMS a w nim uruchomić skrypt tworzący bazę.
  4. Po pomyślnym zainstalowaniu bazy przywrócić poprzednie ustawienia kont w  SQL Server Configuration Manager

Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl