我的机器和数据库服务器位于同一个 Windows 域中。我还有一台不在域中的登台机器。
在我的机器上,我可以毫无问题地使用 FILESTREAM 执行任何和所有操作。从登台机器上,我的应用程序可以随意使用 TSQL,但是当它尝试打开 aSqlFileStream
时,我收到“访问被拒绝。”
登台机器、数据库服务器和我的机器都设置了具有相同名称和密码的本地用户,以便应用程序可以使用集成安全性连接到 SQL Server。由于 FILESTREAM 是唯一不适用于非域机器的东西,我想知道我是否遗漏了 FILESTREAM 文档中的某些内容,或者文档是否没有指定只有 Active Directory 才能满足集成安全性,或者当然是否有我可以做些什么来让我的情况发挥作用。
问题不在于用户帐户,因为查询可以毫无问题地运行。问题与防火墙有关。根据http://msdn.microsoft.com/en-us/library/dd283098.aspx,确保在应用程序服务器和数据库服务器之间打开端口 139 和 445 :