KB4492899 - PERBAIKI: Direktori tingkat database FileTable tidak dapat diakses setelah startup database pada SQL Server 2016 dan 2017

Berlaku Untuk
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

Gejala

Selama pengaktifan Microsoft SQL Server 2016 dan 2017, jika pengguna mencoba menyambungkan ke database sebelum dimulai, sesi pengguna dapat menyebabkan database dimulai secara otomatis. Jika hal ini terjadi, jika database berisi FileTable dan mengaktifkan non_transacted_access FILESTREAM, direktori FileTable tingkat database tidak dapat diakses setelah database dimulai. Jika Anda mencoba mengakses folder melalui File Explorer, ini mungkin menunjukkan bahwa folder tidak tersedia. Saat Anda menjalankan perintah "dir" dari Prompt Perintah, perintah akan mengembalikan "Sistem tidak dapat menemukan file yang ditentukan."

Selain itu, Anda mungkin melihat kesalahan berikut dalam log kesalahan yang menunjukkan sesi pengguna memicu database untuk dimulai secara otomatis:

TanggalWaktu Kesalahan Masuk: 18456, Tingkat Keparahan: 14, Negara Bagian: 38.

TanggalWaktu Login Masuk gagal untuk pengguna 'UserName'. Alasan: Gagal membuka database 'DatabaseName' yang ditentukan secara eksplisit. [KLIEN: IPNumber]

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Resolusi

Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut untuk SQL Server:

Tentang pembaruan kumulatif untuk SQL Server:

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Solusi

Solusi untuk masalah ini adalah dengan menonaktifkan dan mengaktifkan kembali non_transacted_access FILESTREAM database.

ALTER DATABASE [DatabaseName] ATUR SINGLE_USER DENGAN ROLLBACK SEGERA

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

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

ALTER DATABASE [DatabaseName] SET MULTI_USER DENGAN ROLLBACK SEGERA

Referensi

Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.