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

Sql server 2012 如何在SQL Server 2012 FileTable文件夹共享中启用权限?,sql-server-2012,filetable,Sql Server 2012,Filetable,成功创建文件表后,我尝试查看文件共享,但我的权限被拒绝。在Management Studio中,右键单击FileTable,然后“浏览FilterTable目录”会显示以下错误消息: 无法打开文件位置。访问未启用,或者 您没有相同的权限 如果我尝试使用\mycomputer\sqlexpress…手动访问共享,我仍然被拒绝访问 这是在本地计算机上运行的SQL Express。我正在从同一台机器访问此共享。我缺少什么?您试图访问文件共享的windows用户是否具有SQL server对文件表数据库

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

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

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


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

您试图访问文件共享的windows用户是否具有SQL server对文件表数据库的访问权限?Windows共享权限不适用于filestream共享,因此,请确保您在SQL数据库中拥有权限

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

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

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

打开SQL Server Management Studio,连接到SQL实例,右键单击服务器并选择属性。单击advanced部分,有一个filestream部分,如果要使用filetable,需要选择FullAccess enabled

实际上,我是在输入了所有说明如何为filetables启用先决条件的内容后找到这篇文章的:


希望这有帮助。

你能检查一些东西吗

您能否通过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访问时在服务器级别定义的名称
  • 要检查它,右键单击SSMS中的服务器连接并选择属性
  • 然后查看高级-->文件流-->文件流共享名
[文件流目录名]

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

  • 记住,当您命名表格时,它必须符合Windows文件夹命名规则(即避免使用特殊字符),例如“表格|古怪字符”
注意(1):我发现,如果您只向用户授予对Filetable表的“ALTER”权限,则可以在

\\您的计算机\MSSQLSERVER\FILESTREAM\u目录\u名称\

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

注意(2):如果您仅向filetable表上的用户授予选择、更新、删除、插入权限,则用户将能够使用完整路径访问文件夹,查看内容并对其执行操作-创建新文件,修改现有文件

\\您的计算机\MSSQLSERVER\FILESTREAM\u目录\u名称\FILETABLE\u名称\


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

对于我来说,由于我的服务器是一个网络服务器,所以解决方案是:

  • 进入SQL Server配置管理器
  • 打开
    SQL Server服务
  • 右键单击
    SQL Server(MSSQLSERVER)
    并转到属性
  • 转到
    FILESTREAM
    选项卡,确保选中了
    允许远程客户端访问FILESTEAM数据

  • 其他海报已经处理了文件流设置

    要浏览和访问文件表中的文件,至少需要
    查看定义
    选择
    权限。dmc2005帖子中引用的
    ALTER
    权限不是必需的

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


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

    我已经完成了所有这些。我尝试了一切,甚至添加了我的用户帐户作为dbo或dbowner,并对该数据库具有完全权限。此外,我登录到计算机的用户帐户是管理员帐户。我使用它登录到SSMS并创建/销毁我想要的任何内容。在完成先决条件后是否重新启动服务器?是否获得了解决方案?我有一个用户拥有数据库的dbo权限,但无法连接。这就是我所缺少的!
    GRANT VIEW DEFINITION,SELECT ON FileTableName TO [MYDOMAIN\MYGROUPNAME]