如何在SQL Server 2012 FileTable文件夹共享中启用权限?

时间:2013-09-20 02:09:04

标签: sql-server-2012 filetable

成功创建FileTable后,我尝试查看文件共享,但我的权限被拒绝。在Management Studio中,右键单击FileTable,然后“Explore FilteTable Directory”会出现以下错误消息:

  

无法打开文件位置。未启用访问或   你没有相同的权限。

如果我尝试使用\ mycomputer \ sqlexpress手动到达共享...,我仍然被拒绝访问。

这是在我的本地计算机上运行的SQL Express。我正在从同一台机器上访问此共享。我错过了什么?

4 个答案:

答案 0 :(得分:2)

对我来说,由于我的服务器是联网服务器,因此分辨率为:

  1. 进入SQL Server Configuration Manager
  2. 打开SQL Server Services
  3. 右键点击SQL Server (MSSQLSERVER),然后转到属性
  4. 转到FILESTREAM标签,确保选中Allow remote clients access to FILESTEAM data

答案 1 :(得分:1)

Windows用户是否正在尝试访问文件共享,因为SQL Server访问了文件表数据库吗? Windows共享权限不适用于文件流共享,因此请确保您在SQL数据库中拥有权限。

您需要检查以确保您具有访问权限的其他事项是配置管理器中的设置,以确保启用Transact-SQL访问以及文件I / O访问(您还可以在此处设置客户端是否可以连接到远程共享)。

要访问这些设置,请打开SQL Server配置管理器,在SQL Server服务中,右键单击实例的SQL Server服务并选择属性,在文件流选项卡上,您将看到选项。

您需要检查设置的下一个位置(是的,您必须在3个不同的位置启用此功能!)是SQL服务器本身的访问级别。

打开SQL Server Management Studio,连接到您的SQL实例并右键单击您的服务器并选择属性。单击高级部分,有一个文件流部分,如果要使用文件表,则需要选择完全访问权限。

我实际上在输入所有内容后发现了这篇文章,解释了如何启用文件表的先决条件:

Enable the Prerequisites for FileTable

希望这有帮助。

答案 2 :(得分:1)

你能检查几件事吗?

您是否可以通过Windows资源管理器尝试浏览以下各项:

\\YOURCOMPUTERNAME

\\YOURCOMPUTERNAME\[FILESTREAM Share Name]\  e.g MSSQLSERVER

\\YOURCOMPUTERNAME\[FILESTREAM Share Name]\[FILESTREAM Directory Name]

\\YOURCOMPUTERNAME\[FILESTREAM Share Name]\[FILESTREAM Directory Name]\[FILETABLE Table Name]

[FILESTREAM分享名称]

  • 这是在设置FILESTREAM访问权限时在服务器检查级别定义的名称
  • 要检查它,右键单击SSMS中的服务器连接,然后选择属性
  • 然后查看高级 - > FILESTREAM - > FILESTREAM分享名称

[FILESTREAM目录名称]

  • 这是您设置FILESTREAM时在数据库中定义的名称 访问
  • 要检查它,右键单击SSMS中的数据库,然后选择属性
  • 然后查看选项 - > FILESTREAM - > FILESTREAM目录名称

[FILETABLE表名]

  • 请记住,当您为表命名时,它必须符合Windows文件夹命名规则(即避免使用特殊字符),例如" TABLE | WEIRDCHARACTER"

注意(1):我发现如果你只给你的用户" ALTER"在Filetable Table上的权限,它可以在

中浏览
  

\\ YOURCOMPUTER \ MSSQLSERVER \ FILESTREAM_DIRECTORY_NAME \

级别但您实际上无法浏览"目录中的内容"

注意(2):如果您只对文件表表上的用户授予SELECT,UPDATE,DELETE,INSERT权限,它将能够访问带有完整路径的文件夹并查看内容并对其进行操作 - 创建新文件,修改现有文件

  

\\ YOURCOMPUTER \ MSSQLSERVER \ FILESTREAM_DIRECTORY_NAME \ FILETABLE_NAME \

但不是在FILESTREAM_DIRECTORY_NAME级别浏览它 - 它本质上变成了一个隐藏的"你必须知道要查找的整个路径名的目录(除非你猜测它当然是在暴力攻击中)

答案 3 :(得分:1)

其他海报已经处理了FILESTREAM设置。

要浏览和访问文件表中的文件,至少需要XAMPPVIEW DEFINTION权限。 SELECT权限不是必需的。

示例(授予对Windows用户或组的访问权限):

ALTER

将用户/组分配给其中一个固定数据库角色(例如db_datareader)将不会授予文件流访问所需的权限。必须明确授予权限。