是否可以定义许多具有相同名称的ODBC数据源,每个数据源都分配给Windows Server 2012的不同用户(登录)?问题是应用程序使用这样的源连接到SQL Server。因此,该应用程序的每个用户都连接到同一个SQL Server实例并使用相同的数据库,这是不可取的。我希望应用程序使用具有相同名称的ODBC数据源连接到不同的SQL Server实例,具体取决于已登录到系统的用户。实际上,它在某种意义上就像虚拟数据源一样工作。
提前感谢任何建议。
答案 0 :(得分:0)
如评论中所述,您应该可以通过在"用户DSN"中定义ODBC管理器中的DSN来手动执行此操作。选项卡而不是系统DSN"一。
http://support.microsoft.com/kb/213772有一节解释了系统和用户DSN之间的区别:
用户DSN
用户DSN是用户特定的数据源。一个用户 DSN存储在本地,但仅供创建的用户使用 它。 Microsoft Query不使用用户DSN。如果您使用Microsoft Jet,ODBC或结构化查询语言(SQL)命令和绕过 Microsoft Query,用户DSN是必需的。
用户DSN存储在 Windows注册表位于以下键下:
HKEY_CURRENT_USER\Software\Odbc\Odbc.ini\Odbc Data sources
系统DSN
与用户DSN不同,系统DSN不是特定于用户的。系统DSN是 存储在本地,不专用于特定用户。任何用户 登录到有权访问数据源的计算机 可以使用系统DSN。某些程序,如Microsoft SQL Server或 Microsoft Internet Information Server(IIS)需要系统DSN。 必须在程序所在的服务器上创建此DSN。
系统DSN存储在Windows注册表中,如下所示 关键:
HKEY_LOCAL_MACHINE\Software\Odbc\Odbc.ini\Odbc Data sources
请注意,您需要确保每个支持操作的人都熟悉此操作,因为现在给定DSN的问题报告无法解析为单个数据库实例。
答案 1 :(得分:0)
我认为使用SQL Server可以为每次登录定义默认数据库。如果您这样做并将数据库名称保留在DSN之外,则应始终连接到该用户的默认数据库。