SQLServer 登陆问题

之前装的SQLServer Express,今天想来用下,却发现无法登陆了。这个无法登陆指的是用sa用户。因为我要在程序中访问数据库,必须要使用用户名和密码。

sqlcmd -Usa -Pxxx
消息 18456,级别 14,状态 1,服务器 FRED\SQLEXPRESS,第 1 行
用户 'sa' 登录失败。

然而不用用户名密码时却可以访问

sqlcmd
1>

查看日志
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log\ERRORLOG
发现

[color=red]2016-04-09 11:25:03.14 登录 错误: 18456,严重性: 14,状态: 58。
2016-04-09 11:25:03.14 登录 Login failed for user 'sa'.原因: 尝试使用 SQL 身份验证登录失败。服务器配置为仅使用 Windows 身份验证。 [客户端: 192.168.1.107][/color]

然后在网上搜了一通,才知道原来是SQLServer有两种登陆方式:windows账户方式 与 SQLServer和Windows混合登陆。

windows账户方式在登陆时会默认用当前的windows登录的账户为依据去访问SQLServer,不需要输入用户名密码。
第二种混合方式会用指定的账户去登陆。包括sa。

网上说的方法大多是通过SQLServer客户端采用第一种登陆进去,然后可以设置数据库的登陆方式。但是我发现我这里没有按照客户端,不能通过界面的方式去修改。最终找到了可以在注册表中修改:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQLServer
下的LoginMode项,[color=red]将其值从1改为2(十六进制下的)[/color]。(这个注册表路径可能和具体的环境有关,不一定完全相同)
[color=red]注意,要先停止SQLServer服务。修改完后,再启动。[/color]

但是,这样做了之后,我再次以sa账户登录,还是报错。
查看日志
2016-04-09 11:07:56.89 登录 错误: 18456,严重性: 14,状态: 7。
2016-04-09 11:07:56.89 登录 Login failed for user 'sa'. 原因: 评估密码时出错。 [客户端: 192.168.1.107]


这个“评估密码出错”,经过一番查找,猜测可能是密码过期了。于是我就以第一种方式登陆进去,然后修改sa的密码。

ALTER LOGIN sa WITH PASSWORD='*********'
go
ALTER LOGIN sa ENABLE
go

然后在使用新的密码进行登录,成功。


顺便再说下关于SQLServer服务的问题:
打开“SQLServer配置管理器”:
如下可配置SQLServer启动的端口
[img]http://dl2.iteye.com/upload/attachment/0116/4726/193b34d5-4bc2-33e4-9235-83d550bc4daf.png[/img]


注意SQLServer服务的属性的登陆身份选择 Network Service
[img]http://dl2.iteye.com/upload/attachment/0116/4728/41a1e844-0e8a-348a-a499-9b8bdaa1bc89.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值