网络相关
无法通过IP(127.0.0.1 或者其他本机)连接
确保TCP/IP功能开启
打开1433端口
权限相关
代理的权限,通过更改有最高权限的用户,或者给该用户指定的权限
给域用户开通SQLServer访问权限
Windows身份验证模式要更加安全,因为Windows身份验证模式使用了Kerberos(这一名词来源于希腊神话“三个头的狗——地狱之门守护者”)协议。微软推荐的最安全的做法。 但Windows身份验证模式在由域控制器控制网络访问的情况下才得以使用(单机也包括在内,单机使用NTLM协议)。
添加过程可能出现的错误:
当您试图使用 SQL Server 企业管理器向一个域用户或域组提供对一个数据库的访问时,您可能会收到下面的错误信息之一:
Error 15023:User or role '<name>' already exists in the current database.
- 或者 -
Error 15024:The group '<name>' already exists in the current database.
- 或者 -
Error 21002:[SQL-DMO]User '<name>' already exists.
附具体添加步骤:
- 启动企业管理器。
- 展开“Microsoft SQL Server”,然后展开包含您的服务器的 SQL Server 组。
- 展开“安全性”。
- 选中“登录”并单击右键,然后单击“新建登录”。
- 在“SQL Server 登录属性 - 新建登录”对话框中,在“名称”文本框中键入完整的域组或域用户名称。如,domainName\userName or domainName\groupName。
- 单击“数据库访问”选项卡。
- 在“指定此登录可以访问的数据库”下,单击以选中您想允许此登录访问的数据库。
- 对所有选中的数据库,请将“用户”下的用户名或组名替换为 domainName\userName 或 domainName\groupName。
- 单击“确定”。
其他问题
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。(System.Data)
已成功与服务器建立连接,但在登陆过程中发生错误
(provider:SSL Provider,error:0-接收到的消息异常,或格式不正确。)(Microsoft SQL Server)
以上两个问题可以用一个命令行搞定。如下:
netsh winsock reset
感谢高海东的解决方案,经验证,确实是迅雷引起的异常,卸载掉迅雷的所有产品后,问题得到解决。
疑惑的是之前也在使用迅雷,或许是迅雷自动更新的某些组件引起的,记得当时win8刚出来时,迅雷也引起IE10崩溃。具体原理就不得而知了,先这样吧。
感谢 jaypgcool :也许是迅雷更改了winsock的某些设置,重置了一下winsock就OK了,命令:netsh winsock reset
参考
使用映射的 Windows 域用户访问 SQL Server |