Help us understand the problem. What is going on with this article?

FileTableの共有フォルダーにアクセス権を付与する

More than 3 years have passed since last update.

概要

特定のFileTableの共有フォルダーに特定のWindowsユーザーのアクセス権を付与する方法。

一応、MSDN

FileTable セキュリティとファイル システム アクセス
ファイル システム API には、FileTable に格納されているファイルまたはディレクトリへのハンドルを開くための、FileTable の行全体に対する適切な SQL Server 権限 (つまり、テーブル レベルの権限) が必要です。 FileTable の列に対する適切な SQL Server 権限がユーザーに与えられていない場合、ファイル システム アクセスは拒否されます。

という説明があるが、これだけだと具体的にどうすればいいかわかりにくいため、補足的なメモ。

前提

FileTable自体は正常に作成済み(管理者権限ユーザーで共有フォルダーにアクセス可能)であること。

FileTableを使用可能とするための一連の手順については、以下のページが参考になる。

フォルダーの「セキュリティ」の設定は必要ない

一般的に共有フォルダーのアクセス権を設定する場合、フォルダー自体のセキュリティを設定(エクスプローラでフォルダーのプロパティを表示して「セキュリティ」タブを操作)するが、FileTableの共有フォルダーの場合はその必要はない。

FileTableの共有フォルダーのアクセス権設定は、SQL Server Management Studio上の操作で完結する。

インスタンスにログインを作成する

共有フォルダーへのアクセスを許可したいWindowsユーザーがSQL Serverインスタンスのログインとして追加されていない場合、新規に作成する。

USE [master]
GO

-- ログインの作成
CREATE LOGIN [MYDOMAIN\USER1] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[日本語];

img01.png

データベースにユーザーを作成し権限を付与する

FileTableが属するデータベースに、上記のログインと紐づくユーザーを作成する。
ユーザーにはFileTableに対するGRANT ALLと同等の権限(DELETE/INSERT/REFERENCES/SELECT/UPDATE)およびVIEW DEFINITION権限を付与する。

USE [mydatabase]
GO

-- ユーザーの作成
CREATE USER [MYDOMAIN\USER1] FOR LOGIN [MYDOMAIN\USER1] WITH DEFAULT_SCHEMA=[dbo];

-- ユーザーへの権限付与
GRANT DELETE ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];
GRANT INSERT ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];
GRANT REFERENCES ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];
GRANT SELECT ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];
GRANT UPDATE ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];
GRANT VIEW DEFINITION ON OBJECT::[dbo].[sample_filetable] TO [MYDOMAIN\USER1];

作成されたユーザーの例
img02.png

付与された権限の例
picture03.png

以上で、指定したユーザーから指定した共有フォルダーへのアクセスが許可される。
img04.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away