Ketika fitur FILESTREAM diaktifkan di Microsoft SQL Server 2012, SQL Server akan membuat bagian "tersembunyi" pada sistem. Pembagian didefinisikan sebagai berikut:
Sharename FILESTREAM_SHARE
Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE
Remark SQL Server FILESTREAM share
Maximum users unlimited
Users Caching Manual caching of documents
Permissions NT-AUTHORITY\Authenticated Users, FULL
Nama ini adalah nama saham yang Anda berikan ketika awalnya mengkonfigurasi FILESTREAM di SQL Server Configuration Manager . Tapi untuk apa ini?
Sejauh ini
Saya membaca semua dokumentasi FILESTREAM yang tersedia mulai dari:
- FILESTREAM (SQL Server)
- Aktifkan dan Konfigurasikan FILESTREAM
- Buat Basis Data yang Diaktifkan FILESTREAM
- Buat Tabel untuk Menyimpan Data FILESTREAM
- ... dan semua yang terkait
- Kompatibilitas FILESTREAM dengan Fitur SQL Server Lainnya
- FILESTREAM DDL, Fungsi, Prosedur Tersimpan, dan Tampilan
- Akses Data FILESTREAM dengan OpenSqlFilestream
- kertas SQL Server 2008 - FILESTREAM Penyimpanan di SQL Server 2008
- dan artikel FILESTREAM (OLTP) --- Panduan Referensi Teknis untuk Merancang Misi-Solusi OLTP Kritis yang merujuk banyak materi lainnya
... tapi tidak disebutkan tentang bagian dan untuk apa atau untuk apa. Anda memasukkan nama dan SQL Server akan membuat bagian di bawah tenda.
Basis data yang diaktifkan FILESTREAM
Saat Anda membuat database yang mengaktifkan FILESTREAM, database mereferensikan grup fileg yang mereferensikan direktori (direkomendasikan pada drive terpisah) yang sama sekali tidak ada hubungannya dengan share, yang awalnya dibuat selama konfigurasi FILESTREAM.
Cuplikan layar skrip basis data yang diaktifkan FILESTREAM
Ya, saya menyadari bahwa semua jalur ada di C :; itu hanyalah sebuah contoh
Buku putih oleh Paul Randall et al. melanjutkan untuk menjelaskan bahwa ...
Data FILESTREAM disimpan dalam sistem file dalam satu set direktori NTFS yang disebut wadah data, yang sesuai dengan grup-grup fileg khusus dalam database. Akses transaksional ke data FILESTREAM dikendalikan oleh SQL Server dan driver filter sistem file yang diinstal sebagai bagian dari mengaktifkan FILESTREAM di tingkat Windows. Penggunaan driver filter sistem file juga memungkinkan akses jarak jauh ke data FILESTREAM melalui jalur UNC. SQL Server memelihara semacam tautan dari baris tabel ke file FILESTREAM yang terkait dengannya. Ini berarti bahwa menghapus atau mengganti nama file FILESTREAM secara langsung melalui sistem file akan mengakibatkan korupsi basis data.
... lebih jauh ke bawah dokumen (halaman 14) yang mereka bawa ...
Ada pengandar filter sistem file FILESTREAM tunggal untuk setiap volume NTFS yang memiliki wadah data FILESTREAM, dan ada juga satu untuk setiap versi SQL Server yang memiliki wadah data FILESTREAM pada volume. Setiap pengandar filter bertanggung jawab untuk mengelola semua wadah data FILESTREAM untuk volume itu, untuk semua contoh yang menggunakan versi tertentu dari SQL Server.
Misalnya, volume NTFS yang menampung tiga wadah data FILESTREAM, satu untuk masing-masing dari tiga contoh SQL Server 2008, hanya akan memiliki satu pengandar filter sistem file SQL Server 2008 FILESTREAM.
Pertanyaan
- Sangat menyenangkan mengetahui bahwa SQL Server memiliki semuanya yang baik dan terikat, tetapi apa yang sebenarnya dilakukan oleh share itu? Apakah itu disebut "driver filter sistem file"?
- Melihat setiap pengguna yang diautentikasi dapat mengakses "bagikan", apa implikasi keamanannya?
- Apakah Device RsFx0320 merupakan pendahulu dari format sistem file yang tangguh yang diperkenalkan dengan Windows Server 2012?
Jika Anda dapat memberikan jawaban atas pertanyaan saya, maka alangkah baiknya jika Anda dapat memberikan referensi sumber.
sumber
Inilah pendapat saya tentang pertanyaan Anda:
1. Senang mengetahui bahwa SQL Server memiliki segalanya yang baik dan terkait, tetapi apa yang sebenarnya dilakukan oleh share itu? Apakah itu disebut "driver filter sistem file"?
Akses file SQL Server File adalah semua tentang, baik, akses ke file. Berbagi menyediakan lokasi itu melalui berbagi file.
Anda dapat dengan mudah melihat ini dengan beberapa kode C # menggunakan OpenSqlFilestream on
https://docs.microsoft.com/en-us/sql/relational-databases/blob/access-filestream-data-with-opensqlfilestream
Seperti yang Anda lihat, tidak ada FILE_SHARE_READ untuk CreateFile dan tidak ada keajaiban file, tidak ada filestream:
Catatan: Mengenai mengapa tidak ada opsi server / shareless FILESTREAM lokal - Saya tidak tahu. Kedengarannya seperti beberapa orang mungkin menyukai tingkat keamanan ekstra itu.
2. Melihat sebagai pengguna yang diautentikasi dapat mengakses "bagikan", apa implikasi keamanannya?
Wow, pertanyaan bagus. Tampaknya, bahwa izin berbagi tersedia untuk setiap pengguna yang diautentikasi, tetapi, izin NTFS yang mendasarinya harus menyempurnakan keamanan. Tapi, ini sepertinya lubang keamanan bagiku. Saya harus menyelidiki lebih lanjut bagaimana memperbaiki izin NTFS, tetapi saya jelas tidak menyukai izin berbagi file yang digeneralisasi. Ayo Microsoft, SEMUA "pengguna terotentikasi"? Benar atau salah, saya pikir Microsoft cenderung mengabaikan berbagi / fokus pada izin NTFS.
Menyediakan "pengguna terotentikasi" telah menjadi topik perdebatan selama bertahun-tahun. Inilah salah satu blog terbaik yang pernah saya baca di belakang dan belakang "pengguna terotentikasi". Ini sangat mengakar di Windows Saya tidak berpikir mereka akan mengatakan itu risiko yang sah - sampai produk baru mereka keluar yang menghilangkannya.
https://social.technet.microsoft.com/Forums/windowsserver/en-US/bb74fa7c-89bd-476d-88bf-e88cd66618e6/why-is-authenticated-users-in-the-local-users-group-by- default? forum = winserversecurity
3. Apakah Perangkat RsFx0320 merupakan pendahulu dari format sistem file tangguh yang diperkenalkan dengan Windows Server 2012?
Terlihat berbasis SQL daripada berbasis O / S. RsFx0320.sys adalah SQL 2008. Seperti yang terlihat di bawah ini SQL 2012 adalah RsFx0201.sys dan SQL 2014 adalah RsFx0300.sys:
https://support.microsoft.com/en-us/help/2961258/fix-cannot-access-the-data-in-filetable-after-you-upgrade-from-sql-ser
Microsoft menunjukkan apa yang bisa terjadi ketika Anda memutakhirkan 2012-2014:
sumber