用户无法访问 Windows Server 2008 上的系统 DSN

用户无法访问 Windows Server 2008 上的系统 DSN

我们使用低权限域帐户运行 SQL Server 服务。该帐户不是操作系统上的本地管理员。我授予用户帐户的唯一访问权限是在安装 SQL 期间分配的:完全控制其挂载点,然后由 SQL Server 2005/2008 安装程序授予其他一切。

我需要在 SQL Server 2008 中创建一个链接到 ODBC 数据源的服务器。因此,我使用我的域帐户远程访问计算机,该帐户属于一个对操作系统具有本地管理员权限的组。我创建了一个系统 DSN 并将其配置为连接到另一个 SQL Server。当我测试它时,DSN 运行正常。但是,当我尝试创建链接服务器时,出现错误。

在我看来,DSN 对于运行 SQL Server 的域帐户是不可见的。似乎这个问题只发生在 Windows 2008 服务器上。是否有人知道创建 DSN 后是否需要做什么才能让其他用户访问它?

答案1

您必须将用户的 Windows 登录名(如果使用 AD,则只需 DOMAIN\Domain Users)明确添加到 SQL 作为每个相关 DB 的 DBO。通过 Win2K3 服务器,仅 DSN 的 SQL 登录名就足够了,但从 Win2K8 开始,仅 DSN 的 SQL 登录名是不够的。一旦我将给定(受限)用户(在我的情况下实际上是 DOMAIN\Domain Users - 他们都是受限用户)的 Windows 登录名添加到我的 SQL 服务器,每个用户都可以使用 DSN(设置自己的单独登录名),就像以前一样……这真是一个大麻烦 - 感谢 Microshaft 没有任何说明!!!!

答案2

是否有人知道创建 DSN 后是否需要做什么才能让其他用户访问它?

从我在 Google 上看到的内容来看,此行为似乎是 UAC 导致的。您可以选择在该特定服务器上禁用 UAC。

我不确定是否有办法在不禁用 UAC 的情况下允许此功能。

答案3

当您需要创建 32 位 DSN 时,请确保您创建的是 32 位 DSN,而不是 64 位 DSN。64 位系统上有两个版本的 ODBC 工具。默认情况下会打开 64 位版本。尝试手动导航到 C:\Windows\SysWOW64\odbc32ad.exe 工具并在那里创建 DSN。

混乱是试图保持向后兼容性的一个不幸的副作用。

相关内容