【问题标题】:SQL connection issue from paticular folder来自特定文件夹的 SQL 连接问题
【发布时间】:2016-05-02 04:10:20
【问题描述】:

背景:

  • 创建的 C# .NET 应用程序连接到 SQL db 并执行各种操作
  • 应用使用固定的 SQL id 用户和密码
  • App 使用标准连接字符串:
    • 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 的哪些权限可能导致此行为,为什么它会优先于我授予新子文件夹的完全访问权限?

【问题讨论】:

  • 您没有将 sql 连接字符串存储在 App.config || Web.Config 中是否有原因您是否尝试过这样做,您是否有代码可以显示您如何设置/访问代码中的connectionStrings..?
  • 嗨 - 感谢您的回复,我创建了特定的连接/ping/tracert 应用程序以使用固定的用户名和密码测试此问题 - 初始应用程序使用了相同结果的应用程序配置;请求的代码 - 虽然记住这可以从另一个文件夹中工作,所以不要认为连接有问题:
  • 使用 (SqlConnection connection = new SqlConnection(Connstring)) { try { connection.Open(); ConResult = "真"; } catch (Exception ex) { ConResult = ex.ToString(); } }

标签: c# .net sql-server sql-server-2008 folder-permissions


【解决方案1】:

好的 - 所以我设法创建了一个解决方案,现在我需要了解其中的原因。

似乎通过在 share2 上添加列表、读取属性和读取权限可以解决问题。

所以澄清一下:
- 用户可以从 nas 服务器根目录遍历到应用程序 - 与 sql 的连接工作正常
- 用户无法从 nas 服务器根目录遍历,但可以映射应用所在的文件夹并可以访问和运行应用 - 连接不起作用

不确定为什么这些文件夹权限会影响到 sql 的连接,因为应用程序在客户端上有效执行 - 但这将是我的下一个问题......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2013-02-28
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多