7

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

文件位置无法打开。要么未启用访问权限,要么您没有相同的权限。

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

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

4

4 回答 4

2

您尝试访问文件共享的 Windows 用户是否具有对文件表数据库的 SQL 服务器访问权限?Windows 共享权限不适用于文件流共享,因此请确保您在 SQL 数据库中具有权限。

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

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

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

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

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

启用 FileTable 的先决条件

希望这可以帮助。

于 2013-09-20T09:02:41.533 回答
2

对我来说,由于我的服务器是联网服务器,因此解决方案是:

  1. 踏入SQL Server Configuration Manager
  2. 打开SQL Server Services
  3. 右键单击SQL Server (MSSQLSERVER)并转到属性
  4. 转到FILESTREAM选项卡并确保Allow remote clients access to FILESTEAM data已选中
于 2016-05-31T14:09:31.253 回答
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 访问权限时在 Server Insance 级别定义的名称
  • 要检查它,右键单击 SSMS 中的服务器连接并选择属性
  • 然后查看 Advanced --> FILESTREAM --> FILESTREAM Share Name

[FILESTREAM 目录名称]

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

[FILETABLE 表名]

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

注意(1):我发现如果您仅授予用户对 Filetable 表的“ALTER”权限,它将可以在

\\YOURCOMPUTER\MSSQLSERVER\FILESTREAM_DIRECTORY_NAME\

级别,但您实际上无法浏览“目录”的内容

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

\\YOURCOMPUTER\MSSQLSERVER\FILESTREAM_DIRECTORY_NAME\FILETABLE_NAME\

但不要在 FILESTREAM_DIRECTORY_NAME 级别浏览它 - 它本质上变成了一个“隐藏”目录,您必须知道要找到的整个路径名(除非您在暴力攻击中猜到它)

于 2015-07-05T08:15:06.090 回答
1

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

要浏览和访问文件表中的文件,VIEW DEFINTION至少SELECT需要权限。ALTER不需要 dmc2005 帖子中引用的权限。

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

GRANT VIEW DEFINITION,SELECT ON FileTableName TO [MYDOMAIN\MYGROUPNAME]

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

于 2018-03-09T13:04:57.017 回答