我们使用低权限域帐户运行我们的SQL Server服务。 该帐户不是操作系统上的本地pipe理员。 只有在安装SQL的过程中,我才给予用户帐户的访问权限:完全控制其安装点,然后其他所有内容都由SQL Server 2005/2008安装程序授予。
我需要在SQL Server 2008中创build一个链接的服务器到ODBC数据源。 所以我使用我的域帐户远程login到了计算机,这是一个组织的一部分,这个组织拥有操作系统的本地pipe理权限。 我创build了一个系统DSN并将其configuration为连接到另一个SQL Server。 当我testing时,DSN完美地工作。 但是,当我尝试创build链接服务器时,出现错误。
在我看来,DSN对SQL Server运行的域帐户是不可见的。 看来这个问题只发生在Windows 2008服务器上。 是否有人知道创buildDSN后需要做什么才能使其他用户可以访问?
您必须明确地将用户的Windowslogin名(或者只是使用AD的DOMAIN \ Domain Users)添加到SQL中作为每个相关数据库的DBO。 通过Win2K3服务器,只需要一个仅DSN的SQLlogin,但是从Win2K8开始,仅DSN专用的SQLlogin是不够的。 一旦我给我的SQL服务器添加了一个给定(受限制)用户的Windowslogin(实际上是DOMAIN \ Domain Users,他们都是受限用户),然后每个用户都可以使用DSN(安装时使用自己的独立login)就像以前一直是这种情况…这是一个主要的PITA – 感谢缺less任何说明,Microshaft !!!!
是否有人知道创buildDSN后需要做什么才能使其他用户可以访问?
从我在google上看到的这个行为看来是UAC的结果。 您可以select禁用该特定服务器上的UAC。
我不知道是否有一种方法可以不禁用UAC。
确保在创build32位DSN时创build32位DSN,而不是创build32位DSN。 在64位系统上有两个版本的ODBC工具。 64位默认打开。 尝试手动导航到C:\ Windows \ SysWOW64 \ odbc32ad.exe工具并在那里创buildDSN。
混淆是试图保持向后兼容性的一个不幸的副作用。