来自文件夹的 SQL 连接问题
本文关键字:连接 问题 SQL 文件夹 | 更新日期: 2023-09-27 18:31:45
背景:
- 创建的 C# .NET 应用连接到 SQL 数据库并执行各种操作
- 应用使用固定的 SQL ID 用户和密码
- 应用使用标准连接字符串:
-
SqlConnection connection = new SqlConnection(conn_string)
-
- SQL Server 2008 R2/Windows 7/C#,共享位于不同的域中
情况:
- 用户能够运行 exe 并从文件夹 1 (''server1''share1''folder1) 连接到 sql
- 用户能够运行 exe,但无法从文件夹 2(''服务器 1''share2''文件夹 2) 连接到 sql(收到错误 26)
- 驱动器在同一台服务器上,但我只能在 folder1/2 级别具有完全访问权限,因此无法查看更高权限的权限
- 我在文件夹 2 中创建了一个单独的文件夹,并授予用户对该文件夹的完全控制权,用户仍然无法连接到 SQL
- 用户能够从两个驱动器 ping 和跟踪(创建一个应用程序并从每个文件夹运行)到服务器(假设这无关紧要,因为客户端可以连接应该足够,因为 exe 在客户端上运行?
- 我尝试授予用户和 windows id 完全 sa 权限,结果与最后一次尝试相同
- 从用户的本地计算机运行良好
- 我能够运行良好并从两个位置连接
总结:
可以访问和运行 exe,但对于某些用户,来自文件夹 2 的 SQL 连接失败。用户可以从不同的文件夹查看服务器并访问正常,我相信这与某种更高的文件夹权限有关。share2 上的哪些权限可能导致此行为,为什么它会优先于我对新子文件夹授予的完全访问权限?
好的 - 所以我设法创建了一个解决方案,现在我需要了解其中的推理。
似乎通过在share2上添加列表,读取属性和读取权限可以纠正该问题。
所以澄清一下:
- 用户可以从 NAS 服务器根目录遍历到应用程序 - 连接到 SQL 工作正常
- 用户无法从 NAS 服务器根目录遍历,但可以映射应用程序所在的文件夹,并且可以访问和运行应用程序 - 连接不起作用
不确定为什么这些文件夹权限中的任何一个都会影响与 sql 的连接,因为应用程序在客户端上有效地执行 - 但这将是我的下一个问题......