我们计划将大部分数据库移至网络主机的 SQL 服务器。SQL 服务器只能通过 SQL 登录访问。有没有办法在本地设置一些东西来识别用户的 Windows 凭据并自动为他们提供对远程数据库的访问权限?
这会让用户更轻松,因为他们不必再提供另一套登录凭据,而且对我来说也更轻松,因为我不必单独维护它们。
我想到的最简单的解决方案是将登录凭据存储在某个共享位置,只有被允许访问数据库的人才能访问。然而,我觉得这是一个极其幼稚的解决方案,而且可能充满安全漏洞。
我想到的另一种选择是使用托管在我们主服务器上的 Web 界面。这样只有该站点才需要登录凭据。但是,如果我们想做一些更高级的事情(例如 Windows 窗体应用程序或基于 Access 的报告),这种方法实际上不太适用。
理想情况下,我想要某种 SQL 代理,但谷歌在这方面并没有提供太多帮助。
有什么想法吗?
答案1
如果您的域中仍有 SQL Server,则可以使用链接服务器作为某种代理。您可以在链接服务器定义中定义远程登录映射,这样您就可以将本地 Windows 登录映射到其经过 SQL 身份验证的远程对应方。
答案2
嗯,我不知道你为什么不启用混合模式身份验证。在我看来,这可以解决你的问题,而且不需要域要求。
启用混合模式后,您可以禁用“sa”帐户,启用 tcp/ip 端口 1433 侦听器,然后将 NT 用户帐户添加为 SQL 中的用户,然后编辑“public”服务器角色,然后将 NT 用户添加到 SQL 服务器上具有“connect”权限的“public”角色(就像“sa”用户一样)。最后,确保拥有 SQL 服务器的管理员用户已被锁定,因此除了管理员之外,任何人都无法登录。