SQLServer访问不存在或访问被拒绝 or 无法连接到服务器,用户****登陆失败

本文详细阐述了在使用SQL Server时遇到的常见连接问题及身份验证问题,并提供了有效的排查步骤和解决方法,包括网络连接、协议启用、防火墙配置及Windows身份验证设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一."SQL Server 不存在或访问被拒绝" 
  这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.

  一般说来,有以下几种可能性:

  1.SQL Server名称或IP地址拼写有误
  2.服务器端网络配置有误
  3.客户端网络配置有误

  要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因.

  首先,检查网络物理连接
  ping <服务器IP地址/服务器名称>
  如果 ping <服务器IP地址> 不成功,说明物理连接有问题,这时候要检查硬件设备,如网卡,HUB,路由器等.
  还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server.防火墙软件可能会屏蔽对 ping,telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口.

  如果ping <服务器IP地址> 成功而,ping <服务器名称> 失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常.
  有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:

  1.使用记事本打开HOSTS文件(一般情况下位于C:/WINNT/system32/drivers/etc).
添加一条IP地址与服务器名称的对应记录,如:
172.168.10.24 myserver

  2.或在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明.

  其次,使用 telnet 命令检查SQL Server服务器工作状态
telnet <服务器IP地址> 1433

  如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接,如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听.

  接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道.是否启用了 TCP/IP 协议等等,可以利用 SQL Server 自带的服务器网络使用工具来进行检查.

  点击:程序 Microsoft SQL Server 服务器网络使用工具

  打开该工具后,在"常规"中可以看到服务器启用了哪些协议.
  一般而言,我们启用命名管道以及 TCP/IP 协议.
  点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置
  一般而言,我们使用 SQL Server 默认的1433端口.如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接.

  接下来我们要到客户端检查客户端的网络配置
  我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,
  所不同的是这次是在客户端来运行这个工具.

  点击:程序 Microsoft SQL Server 客户端网络使用工具

  打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议.
  一般而言,我们同样需要启用命名管道以及 TCP/IP 协议.
  点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.

  单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处.

  通过以上几个方面的检查,基本上可以排除第一种错误.

  二."无法连接到服务器,用户xxx登陆失败"

  该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:

  1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server
  2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡
  3.在"身份验证"下,选择"SQL Server和 Windows ".
  4.重新启动SQL Server服务.

  在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,那就通过修改注册表来解决此问题:

  1.点击"开始" "运行",输入regedit,回车进入注册表编辑器
  2.依次展开注册表项,浏览到以下注册表键:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer
/MSSQLServer]
  3.在屏幕右方找到名称"LoginMode",双击编辑双字节值
  4.将原值从1改为2,点击"确定"
  5.关闭注册表编辑器
  6.重新启动SQL Server服务.
### PowerBuilder 9 连接 Oracle 11g 的配置及常见错误解决方案 #### 配置步骤 为了使 PowerBuilder 9 能够成功连接到 Oracle 11g 数据库,需完成以下几个方面的设置: 1. **安装必要的驱动程序** 确保已安装适用于 Oracle 11g 的 OCI(Oracle Call Interface)驱动程序。通常情况下,这些驱动程序会随 Oracle 客户端一起提供。如果未安装 Oracle 客户端,则需要下载并安装对应版本的客户端[^4]。 2. **配置环境变量** 设置 `TNS_ADMIN` 和 `ORACLE_HOME` 环境变量指向 Oracle 客户端的安装路径。这一步对于确保 PowerBuilder 正确识别 Oracle 数据源至关重要。例如: ```bash export ORACLE_HOME=/path/to/oracle/client export TNS_ADMIN=$ORACLE_HOME/network/admin ``` 3. **创建 tnsnames.ora 文件** 在 `$TNS_ADMIN` 目录下编辑新建 `tnsnames.ora` 文件,定义目标数据库的服务名。文件内容应类似于以下形式: ```plaintext MY_ORACLE_DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name_or_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service_name) ) ) ``` 替换其中的 `your_host_name_or_ip` 和 `your_service_name` 为实际的目标数据库信息[^1]。 4. **配置 ODBC 数据源** 使用 Windows 的 ODBC 数据源管理器,添加一个新的 Oracle 数据源。选择 Oracle 的 OCI 驱动程序,并在连接字符串中指定服务名其他必要参数。 5. **测试连接** 在 PowerBuilder 中打开 Database Profile 对话框,新增一个数据库配置项。选择 “ODBC” 类型,并输入之前配置的 ODBC 数据源名称。点击 “Test Connection” 按钮验证是否可以正常访问 Oracle 数据库[^4]。 --- #### 常见错误及其解决方案 1. **字符集匹配导致乱码** 如果发现查询结果显示中文字符为乱码,可能是由于服务器端和客户端使用的字符集一致引起的。按照引用中的建议,在加载数据前确认双方字符集的一致性;者采用中间转换的方式,先将数据存储至具有相同字符集的小型数据库(如 FoxBase Access),然后再迁移到最终目标数据库中[^2]。 2. **OCI 库找版本冲突** 当尝试建立连接时报错提示缺少某些动态链接库时,可能是因为当前系统的 PATH 变量顺序当,者是多个版本的 Oracle 客户端共存造成的干扰。调整 PATH 让最新版的 Oracle bin 目录优先级更高即可解决问题。 3. **权限足引发拒绝访问** 若收到关于用户账户无权执行特定 SQL 操作的信息,请检查该用户的授权状态。联系 DBA 授予所需的最小化权限集合,比如 SELECT、INSERT 权限等[^1]。 4. **网络超时主机可达** 出现此类状况多半源于防火墙阻挡是 DNS 解析失败等问题。逐一排查网络连通性和地址解析准确性有助于快速定位根本原因[^1]。 --- ```sql -- 测试用SQL语句示例 SELECT * FROM dual; ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值