IIS中丢失文件表(SQL Server 2016)FILESTREAM权限
我正在尝试将图像存储在可从网站访问的文件表中。 根据我的理解,FileTable需要向运行网站运行的应用程序池的帐户授予“选择”权限 我所拥有的示例:IIS中丢失文件表(SQL Server 2016)FILESTREAM权限,iis,sql-server-2016,filetable,Iis,Sql Server 2016,Filetable,我正在尝试将图像存储在可从网站访问的文件表中。 根据我的理解,FileTable需要向运行网站运行的应用程序池的帐户授予“选择”权限 我所拥有的示例: IIS(6.2) 应用程序池用户:域\Bob SQL Server登录域\Bob 数据库在db\u owner组中有Domain\Bob。我在文件表中也明确授予了Domain\Bobselect DB.dbo.FileStream\u FileTable是\\DEV\FileStream\u FileTable\ IIS有一个站点 SiteA有
- IIS(6.2)
- 应用程序池用户:域\Bob李>
- SQL Server登录域\Bob
- 数据库在
组中有db\u owner
。我在文件表中也明确授予了Domain\Bob
select李>Domain\Bob
是DB.dbo.FileStream\u FileTable
\\DEV\FileStream\u FileTable\
- IIS有一个站点
- SiteA有虚拟目录
目标Image
\\127.0.0.1\DEV\FileStream\u FileTable\
web.config
的权限不足,但没有web.config
在服务器上,运行Internet Explorer,将图像引用为\\127.0.0.1\DEV\FileStream\u FileTable\\Image1.jpg
,它解析为jpg
在服务器上,运行Internet Explorer,将图像引用为HTTP://127.0.0.1/SiteA/image/Image1.jpg
,IE错误(与身份验证错误相同)
配置错误由于权限不足,无法读取配置文件 配置文件
\?\UNC\127.0.0.1\dev\ItemImage\web.config 没有配置文件 在访问指向\127.0.0.1\DEV\Filestream\u FileTable的虚拟文件夹“Images”时,我已尝试指定Windows用户(域\Bob)上下文 并且也没有指定windows凭据 我不理解为什么在Internet Explorer中使用UNC路径时图像可见(它必须将我的上下文验证为在filestream_filetable表上有select),但在IIS中使用上下文指定在表上也有select的用户的Windows上下文时图像不可见 注意:作为一个实验,我修改了IIS中用于访问管理员共享的用户。然后IIS站点解析了该映像 (指向\\servername\sql\u实例\u filestream\u handle\directory\tablename的虚拟目录) Windows用户域\Bob对数据库-数据库所有者具有完全权限 还有另一个用户的问题,如果IIS和SQL server位于同一主机上,文件共享中的servername可能会成为一个问题,我已经考虑到了这一点 我已将Domain\Bob添加到IIS\u iUrs组 什么是域\Bob不是授予访问权限的成员?
我不能很好地使用管理员帐户访问我的所有IIS共享 在某些情况下,如果UNC路径仅返回“拒绝访问”错误,IIS将尝试创建web.config。如果IIS无法创建web.config,它也将无法使用500.19访问web.config
因此,请确保您的应用程序池标识设置为具有访问该文件夹的读/写权限的域帐户
然后请尝试设置匿名身份验证->编辑..->应用程序池标识。Windows用户域\Bob不是DEV sql实例中的登录名。 创建sql登录解决了这个问题。脸红 数据库级别有用户,是的,但SQL server没有登录名
FacePalm感谢您的回复@玩笑。我已使应用程序池用户成为db_owner的成员,SQL正在呈现共享,因此控制访问?在高级设置中,我已将访问共享的站点虚拟文件夹设置为使用域帐户。@a是否已为域帐户设置NTFS权限和网络共享访问权限?在计算机管理/共享文件夹/共享中,我已明确授予域\Bob对共享的完全权限。SQL管理的共享,存储在文件系统上为F:\Catalyst$DEV\images\content\cc9f5495-bb4e-4c6d-a190-7ef66e6c44e5-我还授予了域\Bob读取权限。我知道这是文件夹,因为文件计数与我在FileTable中的行计数匹配。请尝试process monitor并为“结果=拒绝访问”添加筛选器。它应该可以帮助您解决这个问题。我修改了我的问题,以包括过程监视器的结果。同样,这是一个访问被拒绝的问题——但是应用程序池帐户、数据库登录和该“用户帐户”的文件系统级访问允许读取。在我授予Domain\Bob对SQL显示为共享的文件夹的完全权限后,也会出现相同的结果。如果您可以接受您的答复作为答案,我们将不胜感激。谢谢因此,请确保您的应用程序池标识设置为具有访问该文件夹的读/写权限的域帐户。这,你最初的陈述,就是答案。谢谢@JokiesDing