SQLSERVER 在局域网使用Windows身份验证连接局域网内的另一台SQL服务器(不是域环境)
之前连MSDN都说连接局域网内的另一台SQL服务器如果要用Windows身份验证的话必须是“域环境”
但是今天我发现使用Windows身份验证不用域环境照样可以连接局域网内的另一台SQL服务器
在MSDN上的解释:
地址:http://msdn.microsoft.com/zh-cn/library/ms144284.aspx
http://msdn.microsoft.com/zh-cn/library/ms143705(v=SQL.90).aspx
“
-
允许 SQL Server 支持具有混合操作系统的环境,在这种环境中并不是所有用户均由 Windows 域进行验证
实际上是msdn论坛上的一个帖子中某人尝试了之后发现的
我说一下步骤:
我的试验环境:
A机器:Windows7 SQL2005 计算机名: joe
B机器:Windows8 SQL2008R2 计算机名:joehomepc
条件:A机器的 Windows帐户名跟B机器的Windows帐户名要一样 ,密码也要一样(可以没有密码)
第一步:
比如我的A机器的Windows帐户是 Administrator
而我的B机器的Windows帐户也是Administrator
两个帐户的密码都为空
![](http://images0.cnblogs.com/blog/257159/201303/15154142-51299e6b32af4187b440794614d86a29.jpg)
A机器ip:192.168.1.100
B机器ip:192.168.1.102
第二步:
在A机器上打开SSMS,然后输入B机器的ip地址,使用Windows身份验证
直接连接到SQL2008R2
第三步:
查询SQL2008R2上的数据,如果在对象资源管理器里-》打开表会报错
但是使用查询编辑器就不会报错
![](http://images0.cnblogs.com/blog/257159/201303/15154418-4adf13187ee44940bbbb1fc7ac431879.jpg)
![](http://images0.cnblogs.com/blog/257159/201303/15154517-91be5bf73bb840739c6d313440930cce.jpg)
估计是因为SQL2008已经不支持SQL2005的“打开表”这个命令了
总结:
究竟是微软的漏洞呢?还是我们不知道有这个功能?