首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要理解FileTable权限

需要理解FileTable权限
EN

Database Administration用户
提问于 2015-07-20 14:49:44
回答 1查看 3.1K关注 0票数 0

我正在设置一个FileTable,允许用户快速地将一些PDF报告文件填充到数据库中,以便稍后通过intranet应用程序进行搜索(稍后构建)。整理必要的权限有点困难,我遇到了一些障碍。

首先,我已经确认我(具有sysadmin权限)可以向共享中添加和删除文件,而不会出现任何问题,因此FileTable至少是有功能的。

我向AD组添加了一个最终用户,在Server中为该组创建了一个Windows登录名,将其映射到数据库用户,并授予用户对FileTable的选择、插入、更新和删除权限。用户已从他的计算机中登录,并再次登录,以确保我将他添加到的组在auth令牌中。

他可以访问实例的基本文件共享(\\servername\FileStream),但是当他试图深入到特定于数据库的目录(\\servername\FileStream\DatabaseFileStreamDirectoryName)时,他会得到一个权限错误(“您没有访问权限.”)。如果他试图直接访问FileTable路径(\\servername\FileStream\DatabaseFileStreamDirectoryName\PDFReports),情况也是一样的。

那么,授予访问权限的正确方法是什么,以便用户能够浏览到特定数据库的共享子目录,查看FileTables的目录,并最终浏览/访问FileTables中的文件?显然,这不仅仅是数据库中的用户映射,而且在表上选择/insert/update/delete权限,到目前为止,我还没有找到关于这方面的大量清晰文档。

下面是我用来设置这个的(稍微匿名的)代码:

代码语言:javascript
复制
USE master
GO
ALTER DATABASE AppData ADD FILEGROUP FS CONTAINS FILESTREAM
ALTER DATABASE AppData ADD FILE ( NAME = N'FS', FILENAME = N'S:\Filestream\AppData\FS' ) TO FILEGROUP [FS]
ALTER DATABASE AppData SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE AppData SET FILESTREAM( DIRECTORY_NAME = N'AppData' ) WITH NO_WAIT
ALTER DATABASE AppData SET MULTI_USER
GO
USE AppData
GO
CREATE TABLE PDFReports AS FileTable WITH (FileTable_Directory = 'PDFReports')

GRANT SELECT, INSERT, UPDATE, DELETE ON PDFReports TO [MyDomain\App Operators]
EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-07-21 13:48:02

我不得不进行一些猜测,但据我所知,我并没有做任何过分宽容的事情。

我从一个非特权的测试帐户开始,这个帐户是我创建的AD组的成员,我能够导航到数据库的FileStream目录(\\servername\FileStream\DatabaseFileStreamDirectoryName),但是那里什么都看不见。

所以,我首先尝试了最明显的方法:

代码语言:javascript
复制
GRANT VIEW DEFINITION ON PDFReports TO [MyDomain\App Operators]

...Then击中了我正在浏览的VM中的F5,并显示了用于PDF报告的目录。我能够在那里浏览,并将一些文件复制到目录中。

所以我觉得我很好,但是如果我做了什么蠢事的话,我会很感激的。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/107522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档