欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MSSQL 2008不能用IP登录问题如何解决

程序员文章站 2024-02-04 18:33:58
看到网上好多人问为什么我的sql 2008只能用服务器计算器名登录,而不能用ip登录呢?我也遇到过这个问题,看到网上的回答各有千秋,但没有一个写得比较便于操作的。经过一番网...
看到网上好多人问为什么我的sql 2008只能用服务器计算器名登录,而不能用ip登录呢?我也遇到过这个问题,看到网上的回答各有千秋,但没有一个写得比较便于操作的。经过一番网络关键字(sql 2008 local 登录)查找文章,整理,尝试,终于我的sql 2008能用ip地址或local登录了,在此感谢那些无名英雄。

最后,我的成功过程我不敢一个人私藏,特意整理了下解决过程与大家一共分享。

解决mssql 2008不能用ip登录的问题

前提准备:mssql 2008已安装好了一个实例(我按默认情况下安装的实例是:sqlexpress),并安装了sql server management studio工具。
为了满足可以用(local)或ip地址登录2008,需要以下配置支持:

一、打开“sql server 配置管理器”,做如下配置
1、点开“sql server服务”节点
找到我们安装的sql服务:sql server(sqlexpress),双击它打开属性设置对话框,把登录身份中的内置帐户选中,并下拉选择“network service”:它的意思是用于网络服务,这样一来可以远程的客户端就可以重启这个sql server服务了,要不然重启服务功能只限于本机。
2、点开“sql server网络配置”节点。
再点开“实例名的协议”(我的是sqlexpress的协议)。能看到我的实例是支持share memory, named pipes, tcp/ip, via这几种协议的。
右键点击“tcp/ip”选择启用。再右键它选择属性,在属性对话框中,切换到“ip地址”卡片,能看到有“ip1”,“ip2”...“ipall”这几类针对ip的设置信息。首先,因为我们目前用不上“tcp动态端口”的功能,所以把这几类ip的tcp动态端口全设置为空(如果是0的话则表示启用动态端口功能)。再因为我准备把sqlexpress实例向外提供服务的端口设置为1433(和sql2000的默认服务连接端口号保持一致性),所以需要针对各类ip把它们的tcp端口一项设置为1433(其实仅仅只需要把ipall的tcp端口号设置为1433,其它类型的均为空即可)。再把各类ip的“活动”和“已启用”均设置为“是”。点击“确定”保存配置。
3、点开“sql native client 10.0配置”节点(如果没有的话,可能是你的软件安装得有问题,或者没有安装客户端工具:sql server management studio)。
再点击“客户端协议”,找到“tcp/ip”,双击它打开属性对话框,设置“默认端口”为1433(和上面配置的端口号只要保持一致即可),设置“已启用”为“是”。点击确定保存配置。
4、重启sqlexpress实例。

二、打开sql server management studio工具
在连接到服务器操作对话框中做如下配置:
服务器类型:数据库引擎
服务器名称:(local) 或 ip地址 或 . 补充:.的意思也是表示本机的意思
再点击右下角的“选项>>”按钮,切换到“连接属性”卡片,在网络协议一项配置中下拉选择“tcp/ip”
点击连接按钮即可。
打开可以用sa登录的方法

如果不打开一个用户(不一定必须是sa),那么对于不在服务器上的远程客户端工具就没办法连这个sql server服务器了。
、先用sql server management studio工具登录服务器sqlexpress实例(不论是用ip登录方式还是计算机名登录的方式)。
、在根节点上右键打开属性对话框,找到“安全性”节点,打开它,再设置“服务器身份验证”为“sql server和windows身份验证模式”,再点击确定保存配置。
、展开:根节点->安全性->登录名->sa. 右键sa打开属性对话框。
1、在“常规”页中设置sa用户的密码,注意密码不能太简单,如密码是sa肯定是通过不了的。
2、在“用户映射”页中,确认一下sa用户有没有db_owner角色身份。必须要有,要不然sa登录后什么高级功能也做不了了。
3、在“状态”页中,把“是否允许连接到数据库引擎”设置为“授予”,把“登录”设置为“启用”。
4、点击确定保存配置。
、接下来你就可以用sa用户尝试登录了。这和sql server2000就很相似了。
特注:

以上观点均为个人经验,难免有理解不到位的地方,如有错误,望各位大侠们不要用“脏”字骂人 :) ,恳请在回复或留言中指正。