成功创建FileTable后,我尝试查看文件共享,但我的权限被拒绝。在Management Studio中,右键单击FileTable,然后“Explore FilteTable Directory”会出现以下错误消息:
无法打开文件位置。未启用访问或 你没有相同的权限。
如果我尝试使用\ mycomputer \ sqlexpress手动到达共享...,我仍然被拒绝访问。
这是在我的本地计算机上运行的SQL Express。我正在从同一台机器上访问此共享。我错过了什么?
答案 0 :(得分:2)
对我来说,由于我的服务器是联网服务器,因此分辨率为:
SQL Server Configuration Manager
SQL Server Services
SQL Server (MSSQLSERVER)
,然后转到属性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目录名称]
[FILETABLE表名]
注意(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设置。
要浏览和访问文件表中的文件,至少需要XAMPP
和VIEW DEFINTION
权限。
示例(授予对Windows用户或组的访问权限):
ALTER
将用户/组分配给其中一个固定数据库角色(例如db_datareader)将不会授予文件流访问所需的权限。必须明确授予权限。