新的SqlFileStream失败,集成安全性

时间:2013-01-30 19:26:30

标签: c# sql filestream

我一直在为Windows XP上的Winforms应用程序中的“新SqlFileStream”问题编写测试用例,这样做在Windows 7上运行测试用例时遇到了另一个问题。

在所有情况下,连接字符串都使用集成安全性。

当以管理员身份运行时,以下调用有效,但在以“凡人用户”身份运行时无效:

using (SqlFileStream sfs = new SqlFileStream(sqlFilePath, (byte[])transactionContextParm.Value,
 SIO.FileAccess.Write))
{
//...
}

在所有情况下,对用于选择FILESTREAM的同一行中选择的存储过程的调用都有效,因此用户可以访问数据库。

在进行上述调用之前,存储过程已成功返回PathName和FileStream事务上下文。

以下是从捕获的异常中捕获的错误信息:

System.ComponentModel.Win32Exception (NativeErrorCode=5/ErrorCode=0x80004005): Access is denied 
at System.Data.SqlTypes.SqlFileStream.OpenSqlFileStream(String path, Byte[] transactionContext, FileAccess access, FileOptions options, Int64 allocationSize)
at System.Data.SqlTypes.SqlFileStream..ctor(String path, Byte[] transactionContext, FileAccess access, FileOptions options, Int64 allocationSize)
at System.Data.SqlTypes.SqlFileStream..ctor(String path, Byte[] transactionContext, FileAccess access)
...

代码在Win 7客户端计算机上作为具有SQL服务器管理员权限的用户运行时有效,但在作为“凡人用户”运行时则无效。

在原始应用程序中(从中提取此测试用例),没有这个特定问题,所以我错过了我为此测试用例设置的权限。

非常感谢有关所需权限或如何诊断此问题的任何建议!

0 个答案:

没有答案