FILESTREAMインサイダー情報の検索


14

FILESTREAM機能がMicrosoft SQL Server 2012でアクティブになると、SQL Serverはシステム上に「隠された」共有を作成します。共有は次のように定義されます。

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

名前は、SQL Server構成マネージャーで FILESTREAMを最初に構成するときに指定する共有の名前です。しかし、それは何のためですか?

これまでのところ

私はすべての利用可能なFILESTREAMドキュメントを以下から読みます。

...しかし、その共有とその目的、またはその目的についての言及はありませんでした。名前を入力すると、SQL Serverが内部で共有を作成します。

FILESTREAM対応データベース

FILESTREAM対応データベースを作成すると、データベースは、FILESTREAMの構成時に最初に作成された共有とはまったく関係のないディレクトリ(別のドライブに推奨)を参照するファイルグループを参照します。

スクリーンショットFILESTREAM対応のデータベーススクリプト

FILESTREAM対応データベースを作成するスクリプト はい、すべてのパスがC:にあることに気付きました。それは単なる例です

ポール・ランドールらによる白書。それを説明し続けます...

FILESTREAMデータは、データベース内の特別なファイルグループに対応するデータコンテナーと呼ばれる一連のNTFSディレクトリのファイルシステムに格納されます。FILESTREAMデータへのトランザクションアクセスは、SQL Serverと、WindowsレベルでFILESTREAMを有効にする一環としてインストールされるファイルシステムフィルタードライバーによって制御されます。ファイルシステムフィルタードライバーを使用すると、UNCパスを介してFILESTREAMデータにリモートアクセスすることもできます。SQL Serverは、テーブル行からそれらに関連付けられたFILESTREAMファイルへの並べ替えのリンクを維持します。これは、ファイルシステムを介してFILESTREAMファイルを直接削除または名前変更すると、データベースが破損することを意味します。

...ドキュメントをさらに下へ(14ページ)...

FILESTREAMデータコンテナーを持つ各NTFSボリュームに対して1つのFILESTREAMファイルシステムフィルタードライバーがあり、ボリューム上にFILESTREAMデータコンテナーを持つSQL Serverの各バージョンに対しても1つあります。各フィルタードライバーは、特定のバージョンのSQL Serverを使用するすべてのインスタンスに対して、そのボリュームのすべてのFILESTREAMデータコンテナーを管理します。

たとえば、3つのFILESTREAMデータコンテナー(3つのSQL Server 2008インスタンスごとに1つ)をホストしているNTFSボリュームには、SQL Server 2008 FILESTREAMファイルシステムフィルタードライバーが1つしかありません。

ご質問

  1. SQL Serverにはすてきなものがすべて揃っていることを知ってうれしいですが、その共有は実際に何をしますか?いわゆる「ファイルシステムフィルタードライバー」ですか?
  2. 認証されたユーザーが「共有」にアクセスできるように見えると、セキュリティにどのような影響がありますか?
  3. デバイスRsFx0320は、Windows Server 2012で導入された復元力のあるファイルシステム形式の前身ですか?

私の質問への回答を提供できる場合は、ソース参照を提供できればいいと思います。

回答:


5

FILESTREAM機能がMicrosoft SQL Server 2012でアクティブになると、SQL Serverはシステム上に「隠された」共有を作成します。

デフォルトではこれを行いません。共有を有効にするには選択する必要があります。これは、SQL Server構成マネージャーを介して行われます。選択を解除するとEnable FILESTREAM for file I/O access、共有が削除されます。

ここに画像の説明を入力してください

  1. SQL Serverにはすてきなものがすべて揃っていることを知ってうれしいですが、その共有は実際に何をしますか?

この共有により、クライアント(ローカルおよびリモート)は、ファイルストリームデータへのアクセスにストリーミングウィンドウAPIを使用するための単一の共有場所を持つことができます。これはFull Access Enabled、のファイルストリームアクセスのSQL Serverインスタンスレベル設定と連携して機能します。その他のアクセス設定は、ストリーミングAPIでは機能しません。

ここに画像の説明を入力してください

  1. ...いわゆる「ファイルシステムフィルタードライバー」ですか?

いいえそうではありません。これは単なるファイル共有です。

私は水を濁さないようにしようとしていましたが、あなたはできるだけ多くの情報を求めました。上記の取り消し線のテキストで、実際には、これはフィルタードライバーではないと言いました。しかし、それは技術的には半分の真実です。はい、共有フォルダーですが、実際にはフィルタードライバーを介して共有します。これは、ソースコードなしでは本当にダウンできないウサギの穴になり始めるので、これについて本当に議論しました(そして正直に言うと、それは私の意見では学術以外にはほとんど価値がありません)。

フィルタードライバーの目的はいくつかのことを行うことですが、それらの1つは、さまざまなインターフェイスを介してファイルストリームターゲットに格納されたデータへのトランザクションアクセスを提供することです。SQL Server、Transact SQL、Windows API。また、他のいくつかの項目も実行します-ただし、共有を介したアクセスはフィルタードライバーを介して行われます。実際、ファイルストリーム内のファイルにアクセスしようとして、管理者でもSQL Serverでもない場合、それらにアクセスすることはできません。

だから、はい、これは両方あるないフィルタドライバ。フィルタードライバーを介して公開されるのは、Windowsファイル共有の半分です。これは、共有のパスプロパティを表示するとわかります。

get-wmiobject -class Win32_share | where {$_.Description -like 'SQL Server*'} | ft name, path -autosize

2.認証されたユーザーが「共有」にアクセスできるように見えると、セキュリティにどのような影響がありますか?

権限を変更することができ、設定を適切に設定する必要があります。セキュリティへの影響は、他のファイル共有の影響です。

3.デバイスRsFx0320は、Windows Server 2012で導入された復元力のあるファイルシステム形式の前身ですか?

いいえ、これはフィルタードライバーの特定のバージョンの名前です。たとえば、以下は2016がロードされたシステムRsFx0410です。ReFSはファイルシステムです。これは、ファイルシステムとミニポートドライバーの間にあるフィルタードライバーです。実際、これがレガシーフィルタードライバーであることは非常に困惑しています。また、高度非常に低いことに気付くでしょう。これは一般に、サードパーティのフィルタードライバーには受け入れられません。

ここに画像の説明を入力してください

私の質問への回答を提供できる場合は、ソース参照を提供できればいいと思います。

この情報源はありませんが、スクリーンショットと設定を変更する構成オプションを使用して情報をバックアップしました。この答えのすべては、製品自体を調べて、ウィンドウの各部の動作を知ることで見つけることができます(例:フィルタードライバー)。


1、2、3の回答に感謝します。フィルタードライバーの説明に特に感謝します。冒頭での発言は正式に記されていますが、FILESTREAMオプションでオプションを有効にした場合にのみ共有が作成されることを認識しています。FILESTREAMの構成/設定および内部的なものに関する大量のドキュメントを読みました。
ジョン別名hot2use

2

あなたの質問に対する私の見解は次のとおりです。

1. SQL Serverにはすてきなものが揃っていることを知ってうれしいですが、その共有は実際に何をしますか?いわゆる「ファイルシステムフィルタードライバー」ですか?

SQL Serverのファイルストリームアクセスは、ファイルへのアクセスに関するものです。共有は、ファイル共有を介してその場所を提供します。

OpenSqlFilestreamを使用して、いくつかのC#コードでこれを簡単に確認できます。

https://docs.microsoft.com/en-us/sql/relational-databases/blob/access-filestream-data-with-opensqlfilestream

ご覧のとおり、CreateFileのFILE_SHARE_READはありません。ファイルマジックもファイルストリームもありません。

try
    {
        if ( (srcHandle = CreateFile(
            srcFilePath,
            GENERIC_READ,
            FILE_SHARE_READ,
            NULL,
            OPEN_EXISTING,
            FILE_FLAG_SEQUENTIAL_SCAN,
            NULL)) == INVALID_HANDLE_VALUE )
            throw szErrMsgSrc;

注: ローカルサーバー/共有なしのFILESTREAMオプションがない理由については、手がかりがありません。一部の人々は、その余分なレベルのセキュリティを好むかもしれません。

2.認証されたユーザーが「共有」にアクセスできるように見えると、セキュリティにどのような影響がありますか?

素晴らしい質問です 共有のアクセス許可は認証されたすべてのユーザーが利用できるようですが、基礎となるNTFSアクセス許可はセキュリティを微調整する必要があります。しかし、これは私にとってセキュリティホールのように見えます。NTFSアクセス許可がどの程度微調整されているかをさらに調査する必要がありますが、一般的なファイル共有アクセス許可は絶対に好みません。マイクロソフトに来て、すべての「認証されたユーザー」?正しいか間違っているかは、MicrosoftはNTFSアクセス許可の共有/フォーカスを無視する傾向があると思います。

「認証済みユーザー」の提供は、長年議論されてきたトピックです。「認証済みユーザー」の前後で読んだ最高のブログの1つです。Windowsには非常に深く定着しているため、新製品がリリースされてそれがなくなるまで、合法的なリスクだとは思わないでしょう。

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.デバイスRsFx0320は、Windows Server 2012で導入された復元力のあるファイルシステム形式の前身ですか?

O / Sベースではなく、SQLベースに見えます。RsFx0320.sysはSQL 2008です。以下に示すように、SQL 2012はRsFx0201.sys、SQL 2014はRsFx0300.sysです。

https://support.microsoft.com/en-us/help/2961258/fix-cannot-access-the-data-in-filetable-after-you-upgrade-from-sql-ser

Microsoftは、2012から2014にアップグレードすると何が起こるかを示しています。

To work around this issue, change manually the path property of the resource <AvailabilityGroupName>_FSShare to point to the correct driver: From
'\\?\GLOBALROOT\Device\RsFx0201\<localmachine>\{AvailabilityGroupID}' to '\\?\GLOBALROOT\Device\RsFx0300\<localmachine>\{AvailabilityGroupID}'

私の質問2&3私はその共有を介してデータにアクセスできることを、あなたの答え1のためのリアライズを行うが、私はどのように思っていた、それ故にタイトル「FILESTREAMので検索するには答えてくれてありがとうインサイダー情報」。
ジョン別名hot2use
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.