最近在使用NFineBase框架+c#做一个系统的时候,在使用sql server  2012 连接数据库的时候 ,遇到几个问题。

一.

就是在本地或者远程连接别人的数据库的时候,以ip地址作为服务器名称  以SQL Server 身份验证(即输入登录名和密码)的方式登录数据库  总会出现错误

 比如说会提示一下错误:

用户 'sa' 登录失败,该用户与可信 SQL Server 连接无关联。


但是使用     计算机名\实例名     这种方式就可以登录

\

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_IP


最后发现还是数据库的配置问题,解决方案如下:

我使用的是win10  系统  数据库是sql server 2012  

鼠标移动到win 键上  点击鼠标左键,找到安装的sql server 2012  如下图 所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_sql server_02


在这里还有一个问题,就是在这里边 你是无法直接找到   sqlserver  数据库的 那个  配置工具  文件夹的,对于win7系统在这里可以直接看到一个  配置工具 文件夹,里面有SQL SERVER 配置管理器  ,对于这种情况,其实可以直接在win10  的启动文件夹下找到,在 点开的sql server 2012 文件夹下 选中 SQL Server Data Tools  点击右键,如下图所示:


sql server登录服务器名称 sql server 2012登陆服务器名称是什么_数据库_03


打开文件位置    如下图所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_sql server登录服务器名称_04




 或者  你可以直接打开  C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012   这个文件夹,根据你自己电脑的结构操作。

然后点开  配置工具-->SQL Server 配置管理器      如下图所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_数据库_05

点开   SQLEXPRESS 的 协议    下的  TCP/IP,点击启用,这里我的已经启用了,如图下所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_IP_06


然后点开  IP地址

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_SQL_07

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_SQL_08


将你的本机的ip地址输入到 IP3 中   我的本机的IP地址是192.168.17.199   将   TCP动态端口设为空,TCP端口设为1433    下面   活动和已启用 选项改为 是  


然后点击应用    确定    然后重新启动   SQLEXPRESS服务,然后可以使用IP地址登录数据库了。


二.

使用IP地址作为服务器名登录数据库时,出现   用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联等错误,也就是使用 IP地址作为服务器名称  以登录名和密码的的方式登录数据库时,出现错误。


解决方法:

先用windows身份验证的方式登录进去然后设置

选中  你的连接实例  ,右键  点击属性,如下图所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_数据库_09



sql server登录服务器名称 sql server 2012登陆服务器名称是什么_SQL_10



然后  点击   连接实例下 的    安全性--->sa--->状态,如下图所示:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_sql server登录服务器名称_11


最后发现  对于每一个    连接,比如:

sql server登录服务器名称 sql server 2012登陆服务器名称是什么_数据库_12

这就是 一个连接,对于每个连接,都需要设置上面这些权限,才可以保证在本地或者远程  以  IP地址为服务器名称,以 登录名和密码登录数据库   


如果  换成另一个连接或用户,要重新配置才可以,当使用某个自定义用户登录时,要记着,设置这个用户的连接配置信息。


三.

开着 防火墙导致远程连接  失败,关闭防火墙 或者设置过后,成功远程连接