背景:
- 创建的 C# .NET 应用程序连接到 SQL db 并执行各种操作
- 应用使用固定的 SQL id 用户和密码
- 应用程序使用标准连接字符串:
SqlConnection connection = new SqlConnection(conn_string)
- SQL Server 2008 R2/Windows 7/C#,共享在不同的域中
情况:
- 用户可以运行 exe 并从 folder1 (\server1\share1\folder1) 连接到 sql
- 用户可以运行 exe 但无法从 folder2(\server1\share2\folder2) 连接到 sql(收到错误 26)
- 驱动器在同一台服务器上,但是我只能在文件夹 1/2 级别具有完全访问权限,因此无法查看更高的权限
- 我在 folder2 中创建了一个单独的文件夹并授予用户对该文件夹的完全控制权,用户仍然无法连接到 SQL
- 用户能够从两个驱动器对服务器执行 ping 和跟踪(创建一个应用程序并从每个文件夹运行)(假设这应该无关紧要,因为客户端可以连接,因为 exe 在客户端上运行就足够了?)
- 我已尝试授予用户和 windows id 完全 sa 权限,结果与最后一次尝试相同
- 在用户的本地机器上运行良好
- 我能够正常运行并从两个位置连接
概括:
exe 可以访问和运行,但某些用户从文件夹 2 的 SQL 连接失败。用户可以从不同的文件夹看到服务器并正常访问,我相信这与更高级别的某种文件夹权限有关。对 share2 的哪些权限可能会导致这种行为,为什么它会优先于我授予新子文件夹的完全访问权限?