IIS 中文件 Table (SQL Server 2016) FILESTREAM 权限丢失
File Table (SQL Server 2016) FILESTREAM permissions lost in IIS
我正在尝试将图像存储在可从网站访问的 FileTable 中。
据我了解,FileTable需要"SELECT"授权给网站运行的帐号运行ApplicationPool。
我的示例:
- IIS (6.2)
- 应用程序池用户:Domain\Bob。
- SQL服务器登录Domain\Bob
- 数据库在
db_owner
组中有 Domain\Bob
。我也在文件 table 上明确授予 Domain\Bob
select。
DB.dbo.FileStream_FileTable
是 \DEV\FileStream_FileTable\
- IIS 有 SiteA
- SiteA 有虚拟目录
Image
目标 \127.0.0.1\DEV\FileStream_FileTable\
如果我查看 IIS 身份验证,IIS 错误提示访问权限不足 web.config
- 但没有 web.config
.
在服务器上,运行 Internet Explorer 将图像引用为 \127.0.0.1\DEV\FileStream_FileTable\<...>\Image1.jpg
它解析为 jpg。
在服务器上,运行 Internet Explorer,将图像引用为 HTTP://127.0.0.1/SiteA/Image/Image1.jpg
,IE 错误(与身份验证错误相同的错误)...
Config Error
Cannot read configuration file due to insufficient permissions
Config File
\?\UNC7.0.0.1\dev\ItemImage\web.config
没有配置文件。
我尝试在访问目标为 \127.0.0.1\DEV\Filestream_FileTable 的虚拟文件夹 "Images" 时指定 Windows 用户 (Domain\Bob) 上下文
也没有指定 windows 凭据...
我不明白为什么图像在 Internet Explorer 中使用 UNC 路径可见(它必须验证我的上下文在 filestream_filetable table 上具有 select)但不是使用上下文指定用户的 Windows 上下文,该用户在 IIS 中的 table 上也有 select。
注意:作为实验,我在 IIS 中将用于访问共享的用户修改为管理员。然后 IIS 站点解析图像。
(虚拟目录指向 \\servername\sql_instance_filestream_handle\directory\tablename)
Windows 用户 Domain\Bob 对数据库拥有完全权限 - 数据库所有者。
还有另一个用户的问题,Access to SQL Server FileTable from IIS,如果 IIS 和 SQL 服务器在同一主机上,文件共享中的服务器名是一个潜在的问题,我已经考虑到了这一点。
我已将 Domain\Bob 添加到 IIS_ISURS 群组...
什么是 Domain\Bob 不是该授予访问权限的成员?
我不能很好地使用管理员帐户访问我的所有 IIS 共享!
在某些情况下,如果 UNC 路径只是 return 拒绝访问错误,IIS 将尝试创建 web.config。如果 IIS 创建 web.config 失败,它也将无法使用 500.19.
访问 web.config
因此,请确保您的应用程序池身份设置为具有 read/write 访问文件夹权限的域帐户。
那么请尝试设置匿名身份验证->编辑..->应用程序池标识。
Windows 用户 Domain\Bob 不是 DEV sql 实例中的登录。
创建一个 sql 登录解决了它。 脸红
数据库级别有用户,是的,但是 SQL 服务器没有登录。
捂脸
我正在尝试将图像存储在可从网站访问的 FileTable 中。 据我了解,FileTable需要"SELECT"授权给网站运行的帐号运行ApplicationPool。
我的示例:
- IIS (6.2)
- 应用程序池用户:Domain\Bob。
- SQL服务器登录Domain\Bob
- 数据库在
db_owner
组中有Domain\Bob
。我也在文件 table 上明确授予Domain\Bob
select。 DB.dbo.FileStream_FileTable
是\DEV\FileStream_FileTable\
- IIS 有 SiteA
- SiteA 有虚拟目录
Image
目标\127.0.0.1\DEV\FileStream_FileTable\
如果我查看 IIS 身份验证,IIS 错误提示访问权限不足 web.config
- 但没有 web.config
.
在服务器上,运行 Internet Explorer 将图像引用为 \127.0.0.1\DEV\FileStream_FileTable\<...>\Image1.jpg
它解析为 jpg。
在服务器上,运行 Internet Explorer,将图像引用为 HTTP://127.0.0.1/SiteA/Image/Image1.jpg
,IE 错误(与身份验证错误相同的错误)...
Config Error
Cannot read configuration file due to insufficient permissionsConfig File
\?\UNC7.0.0.1\dev\ItemImage\web.config
没有配置文件。
我尝试在访问目标为 \127.0.0.1\DEV\Filestream_FileTable 的虚拟文件夹 "Images" 时指定 Windows 用户 (Domain\Bob) 上下文 也没有指定 windows 凭据...
我不明白为什么图像在 Internet Explorer 中使用 UNC 路径可见(它必须验证我的上下文在 filestream_filetable table 上具有 select)但不是使用上下文指定用户的 Windows 上下文,该用户在 IIS 中的 table 上也有 select。
注意:作为实验,我在 IIS 中将用于访问共享的用户修改为管理员。然后 IIS 站点解析图像。
(虚拟目录指向 \\servername\sql_instance_filestream_handle\directory\tablename)
Windows 用户 Domain\Bob 对数据库拥有完全权限 - 数据库所有者。
还有另一个用户的问题,Access to SQL Server FileTable from IIS,如果 IIS 和 SQL 服务器在同一主机上,文件共享中的服务器名是一个潜在的问题,我已经考虑到了这一点。
我已将 Domain\Bob 添加到 IIS_ISURS 群组...
什么是 Domain\Bob 不是该授予访问权限的成员? 我不能很好地使用管理员帐户访问我的所有 IIS 共享!
在某些情况下,如果 UNC 路径只是 return 拒绝访问错误,IIS 将尝试创建 web.config。如果 IIS 创建 web.config 失败,它也将无法使用 500.19.
访问 web.config因此,请确保您的应用程序池身份设置为具有 read/write 访问文件夹权限的域帐户。
那么请尝试设置匿名身份验证->编辑..->应用程序池标识。
Windows 用户 Domain\Bob 不是 DEV sql 实例中的登录。 创建一个 sql 登录解决了它。 脸红
数据库级别有用户,是的,但是 SQL 服务器没有登录。