KB4492899 – КОРЕКЦИЯ: Директорията на ниво база данни с файлова таблица е недостъпна след стартирането на базата данни през SQL Server 2016 и 2017

Отнася се за
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

Симптоми

При стартиране на Microsoft SQL Server 2016 и 2017, ако потребителят се опита да се свърже към база данни преди стартирането й, потребителската сесия може да доведе до автоматично стартиране на базата данни. Когато това се случи, ако базата данни съдържа файлова таблица и FILESTREAM non_transacted_access разрешен, директорията с файлови таблици на ниво база данни е недостъпна след стартиране на базата данни. Ако се опитате да отворите папката чрез Файлов мениджър, това може да означава, че папката е недостъпна. Когато изпълните командата "dir" от командния ред, тя връща съобщение "Системата не може да намери указания файл".

Освен това може да видите следните грешки в регистрационния файл на грешките, които показват, че сесия на потребител е задействала автоматично стартиране на базата данни:

DateTime Грешка при влизане: 18456, Степен на сериозност: 14, Щат: 38.

DateTime Влизането при влизане е неуспешно за потребителско "Потребителско име". Причина: Неуспешно отваряне на изрично зададената база данни "DatabaseName". [КЛИЕНТ: IPNumber]

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Решение

Този проблем е решен в следните кумулативни актуализации за SQL Server:

За кумулативните актуализации за SQL Server:

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

Заобиколно решение

Заобиколното решение на този проблем е да забраните и разрешите отново non_transacted_access на базата данни FILESTREAM.

ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF )

ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL )

ALTER DATABASE [DatabaseName] SET MULTI_USER WITH ROLLBACK IMMEDIATE

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.