SQL Server资料收集(不断更新中…)

AcHerat 2011-08-23 01:31:46
加精
一、SQL Server访问时常见错误
1.1、SQL Server不存在或访问被拒绝
(1)、能否PING通服务器(检查网络)
基础网络知识:
序号 目标 现象 结果
1 127.0.0.1 能通 说明TCP/IP说明没有问题
2 本机网卡IP 能通 说明TCP/IP已与网卡正确绑定
3 对方IP或网关(同一网段) 能通 说明网线和对方设置都没有问题
4 对方IP或网关(同一网段) 不通 作如下软硬件方面的检查


硬件:
1:网卡问题:插槽坏了,网卡没插好,网卡坏了,网口坏了;
2:网线问题:水晶头,水晶头与网卡的接触不好(劣质水晶头),网线内部断了,或者没有插网线;
软件:
1:网卡驱动;
2:网卡设置(IP,掩码,网关,DNS);
3:错误的设置路由(win2000/win2003);
4:防火墙的原因(包括XP自带或者第三方的);
5:如果TCP/IP协议的[卸载]选项是灰色的,说明WinXP 系统的TCP/IP协议已经被卸载。PING 127.0.0.1的时候就会出现错误,此时无法通过重装TCP/IP协议还原系统的TCP/IP,可以利用NETSH命令的重置TCP/IP协议堆栈功能
格式如下
c:\>netsh
netsh>interface
netsh interface>ip
netsh interface ip>RESET C:\RESETTCPIP.LOG
说明:
NETSH 在重置TCP/IP堆栈的时候必须指定一个记录文件
其中C:\RESETTCPIP.LOG 为一个记录文件.用来记录NETSH 在重置过程中的所有操作
这样重置以后TCP/IP协议就可以回复为正常时候的状态了。
6:如何自动分配IP
用ipconfig /release,ipconfig /renew命令看看能不能获取IP,可运行ipconfig/all查看,如果显示了DHCP Server的地址,而ip地址仍然为0.0.0.0,那么就运行"services.msc",确保[DHCP Client]服务已经启动。
(2)、能否TELNET通服务器(检查SQL Server服务及端口)
运行"services.msc",确保服务器上TELNET服务启用的情况下,运行telnet 192.168.0.1 1433,1433是SQL Server 2000对于TCP/IP的默认侦听端口。如果有问题,则提示“……无法打开连接,连接失败"。
  如果这一步有问题,应该检查以下选项:
² 服务器是否启动了SQL Server 2000服务;
² 检查服务器端的网络配置,在服务器上打开:开始>程序>Microsoft SQL Server>服务器网络实用工具,检查是否启用TCP/IP协议,以及TCP/IP协议的端口是否与上面TELNET时的端口一致。同样,如果存在防火墙的话,也要打开该端口。
² 检查服务器是否在侦听SQL Server的TCP/IP端口:在服务器命令行下面输入netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则需要给SQL Server 2000打上至少sp3的补丁。其实在服务器端,可以按照《SQL Server 2000 基础(1)——安装》中的方法查看当前补丁的版本。
如果以上都没问题,再次TELNET测试,将会看到屏幕一闪之后光标在命令行窗口左上角闪动,这表明TELNET测试成功。
但有的时候TELNET通了,上面的检查全正常但还是报这个错,后来我发现用JDBC可以连接上,于是,就猜想可能是ODBC的原因(查询分析器用的是ODBC驱动连到数据库的),就装了个MDAC2.8,然后再去控制面板中用ODBC数据源测试,还是不通,无意间改了一下数据源中的客户端配置,将其中的端口由动态改为固定,就可以连接成功了,至于其中原因还没有分析清楚。
(3)、检查客户端的网络配置
在客户端打开:开始>程序>Microsoft SQL Server>客户端网络使用工具。
检查是否启用TCP/IP协议,以及TCP/IP协议的端口是否与服务器端的一致。
附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是使用的TCP/IP协议。
1.2、无法连接到服务器,用户xxx登陆失败
错误产生的原因有两种:
(1)密码错误,如果密码中有字母,可检查大小写;
(2)由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如sa )进行连接,解决办法如下:
企业管理器>服务器>编辑SQL Server注册属性>使用windows身份验证,以连接上SQL Server;
企业管理器>服务器>属性>安全性,以设置身份验证模式为SQL Server和Windows;
重新启动SQL Server服务,用SQL Server用户重新连接。
以上设置可通过修改注册表来实现,如下:
运行REGEDIT,打开注册表;
打开到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
将右侧窗口的”LoginMode”项的值从1改为2;
重新启动SQL Server服务,用SQL Server用户重新连接。
以下注册表键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode的值决定了SQL Server将采取何种身份验证模式.
1.表示使用Windows身份验证模式 ;
2.表示使用混合模式(Windows身份验证和SQL Server身份验证)。
1.3、提示连接超时
遇到这个错误,表示客户端已经找到了这台服务器且可以连接,不过是由于连接的时间大于允许的时间而导致出错。
一般当用户在Internet上用客户端连接服务器时,如果网速慢,有可能会导致以上的超时错误。某些情况下,由于局域网的网络问题,也可能会导致这样的错误。
默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒,这也是为什么在企业管理器里发生错误的可能性比较大的原因。
要解决这样的错误,可以修改客户端的连接超时设置,如下:
企业管理器中的设置:企业管理器>工具>选项>高级>连接设置>登录超时;
查询分析器中的设置:查询分析器>工具>选项>连接>登录超时。
1.4、SQL Server 2000无法打开1433端口
如果你是WINXP 或WIN2003,那么一定要安装SQL SERVER SP3及以上的补丁。
注意:SP4补丁执行的时候是解压,要在解压后的目录中执行setup.bat才是真正的安装。
二、禁止别的电脑访问本机的SQL Server服务器
(1)设置用户密码(包括WINDOWS和SQL SERVER),不提供用户及密码给不想让其访问的用户;
(2)防火墙中设置限制,只允许指定IP访问你的SQL Server服务器端口(默认1433),当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口;
(3)如果使用SQL Server 2005,还可以通过端点限制的方法来实现,此方法要求一块专门的网卡,所有可以连接SQL Server的客户端均通过此网卡接入(假设此网卡的IP是192.168.1.1):
1. 在“SQL Server 配置管理器”的“SQL Server 2005网络配置中”,禁止除TCP/IP之外的所有协议;
2. 使用如下的T-SQL禁止默认的TCP端点
ALTER ENDPOINT [TSQL Default TCP]
STATE = STOPPED
3. 使用如下的T-SQL建立新的TCP端点和授权
USE master
GO
-- 建立一个新的端点
CREATE ENDPOINT [TSQL User TCP]
STATE = STARTED
AS TCP(
LISTENER_PORT = 1433,
LISTENER_IP = (192.168.1.1) -- 侦听的网络地址
)
FOR TSQL()
GO
-- 授予所有登录(或者指定登录)使用此端点的连接权限
GRANT CONNECT ON ENDPOINT::[TSQL User TCP]
TO [public]
完成上述配置之后,只有通过网络地址配置为192.168.1.1的网卡接入的客户端才能访问SQL Server;另外,如果只授予指定登录对端点的连接权限,则只有指定的登录才能接入SQL Server实例。
(4)当SQL Server 2005升级到SP2或者更高的版本的时候,还可以通过服务器级的DDL触发器来实现控制。
执行下面的T-SQL后,将使除IP地址为192.168.1.1之外的客户端连接失败。
USE master
GO
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)') <> '192.168.1.1'
ROLLBACK TRAN
GO
...全文
3420 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhzll2010 2012-09-21
  • 打赏
  • 举报
回复
看看学习
雪狐 2012-09-20
  • 打赏
  • 举报
回复
收藏了。。。。
kevin_尛柒 2012-03-31
  • 打赏
  • 举报
回复
....直接出chm吧!!!
songziling 2012-03-19
  • 打赏
  • 举报
回复
学习~~~
SkyRazer 2011-09-09
  • 打赏
  • 举报
回复
新手上路····
xiaosun830910 2011-09-09
  • 打赏
  • 举报
回复
很好,很强大
jxqn_liu 2011-09-06
  • 打赏
  • 举报
回复
小三开课了,继续学习……
申公 2011-09-06
  • 打赏
  • 举报
回复
牛X,我觉得可以整成一本chm
木小舟 2011-09-06
  • 打赏
  • 举报
回复
全是知识啊,眼泪哗哗的
咖啡色丶记忆 2011-09-05
  • 打赏
  • 举报
回复
好多呀,为什么就是看不懂呢!!
ly745455 2011-09-05
  • 打赏
  • 举报
回复
强势mark~
xpjjyz 2011-09-05
  • 打赏
  • 举报
回复
强势mark~
zxlNoodle 2011-09-04
  • 打赏
  • 举报
回复
不错,灰常好。学习啦!
qcxabc 2011-09-04
  • 打赏
  • 举报
回复
很好,学习了。
SunnyerLiu 2011-09-01
  • 打赏
  • 举报
回复
什么叫蛋帖?蛋疼什么意思?
ztaimm 2011-08-31
  • 打赏
  • 举报
回复
好贴 顶
AcHerat 2011-08-29
  • 打赏
  • 举报
回复
额。。。这个看大版了,当时没仔细考虑,反正是资料收集了,以后看能不能继续更新。
中国风 2011-08-29
  • 打赏
  • 举报
回复
強力支持

[Quote=引用 12 楼 maco_wang 的回复:]

等小F或是大版看到后,希望可以帮小三换个标题。
[/Quote]
小三换个什麼标题?
988kook 2011-08-29
  • 打赏
  • 举报
回复
hoho 报道 谁给按解决下问题先http://topic.csdn.net/u/20110829/16/d1db6a9a-5b3d-44b1-9c10-c78f410615c1.html?23857
下雨天 2011-08-29
  • 打赏
  • 举报
回复
此贴必火,留名
加载更多回复(61)

11,848

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧