无法使用SQL login去登陆SQL Server - 'Password did not match'

原文:无法使用SQL login去登陆SQL Server - 'Password did not match'

出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/02/01/sql-login-sql-server-password-did-not-match.aspx

问题描述: 在某一台机器上的management studio,始终无法使用SQL login去登陆SQL Server。但是如果在其他的机器上,使用同样的SQL login是可以登陆SQL Server的。

错误信息:‘Password did not match ‘

诊断步骤:

1.       在这台机器上使用SQLCMD连接SQL Server,用同样的SQL login 登陆,是否可以成功?

2.       创建一个新的SQL login 但是使用空密码。然后在出问题的机器上使用新创建的SQL login以及空密码登陆SQL Server,是否可以成功?

如果1和2都可以成功,基本上我们就可以确定问题是由于management studio工具对传过去的密码加密失败导致的了。

Management studio工具把我们在界面上输入的密码传到SQL Server之前,是需要首先做加密的。这个加密的密码存在什么地方呢?

我们可以在run中运行%appdata%这个环境变量来检查路径。通常这个路径设置为的是%USERPROFILE%\AppData\Roaming。在这个路径下面,继续找到microsoft\protect 目录。

所有加密的cache就存放这个目录下面了。

接下来我们看导致这个问题的几个原因:

1.     可以尝试清空protect目录下所有的文件和文件夹,然后重试。

2.     直接运行%appdata%报错,无法打开指定的路径,这种情况通常是对%appdata%指向的路径没有权限,或者%appdata%指向路径是错误的。%appdata%是存储在如下注册表键值中的,我们可以通过访问注册表来确认这个路径是否有效:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData.

3.     对于注册表键值HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData.没有访问权限。这个也很容易通过访问注册表键值来确认。

只要我们当前用户确认对注册表键值有访问的权限,注册表键值中所存储的路径有效,当前用户对注册表键值所存储的路径有访问和写权限,这个问题就可以解决了。

有时候我们会发现这个目录下的Microsoft子目录下找不到protect文件夹,只要上述三个前提检查,修改并确保满足以后,这个protect目录在management studio使用加密的时候会自动创建,所以protect文件夹不存在并不是问题的原因。

无法使用SQL login去登陆SQL Server - 'Password did not match'

时间: 2024-08-30 01:47:44

无法使用SQL login去登陆SQL Server - 'Password did not match'的相关文章

SQL window身份登陆 SQL server不能登陆

用window方式登陆然后,在SQL Server Management Studio 中新建查询,执行下面代码一. ALTER LOGIN sa ENABLE GO ALTER LOGIN sa WITH PASSWORD = 'password' GO 二. ALTER LOGIN [sa] WITH PASSWORD = N'NewPassword' --不用提供旧密码

SQL服务器无法登陆SQL控制台

SQL无法登录SQL控制台 ===问题描述 一台为加入域的SQL生产服务器,登录屡屡失败,查看报错信息之后提示"在于SQL Server建立连接时出现和网络相关的或特定于实例的错误,未找到服务器".开始感觉是这个登录名称存在问题,鉴于用户的服务器名称,我依次使用了..local.本地计算机名称来登录SQL,都失败了,用户说他一直是用这个服务器名称的,客户嘛,你也不能质疑他.就这样排查吧( 1047是SQL端口号 ) ====原因分析 可能造成报错的原因有以下几种 服务没有启动 SQL配

编辑login.sql进行sqlplus登陆设置

执行SQLPLUS登录到SQL 界面时候,就会自动的加载 $ORACLE_HOME/sqlplus/admin 中的login.sql(若没有则加载glogin.sql) 这里面的东西 是根据自己的爱好设置的,基本设置的代码如下(深入ORACLE体系编程艺术): define _editor=viset serveroutput on size 1000000set trimspool onset long 5000set linesize 100set pagesize 9999column

PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/phpcms_v9/index.php?m=member&c=index&a=login dosubmit=1&username=phpcms&password=123456%26username%3d%2527%2bunion%2bselect%2b%25272%2

远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect

最近在做一个项目,里面要用到远程mysql数据库. 我想把我想要实现的功能说一下吧: 1 /** 2 * 是这样的功能:我的机器是A,我现在先利用我自己写的一个jdbc方法<br> 3 * 调用远程的机器B上安装的数据库<br> 4 * 然后把我想要CRUD操作B机器上的数据库<br> 5 * 或者简单一点,可以这样认为,我现在在机器A上面有一些数据<br> 6 * 我要把这些数据插入到远程的机器B的mysql数据库里面去<br> 7 * 就是这

java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect

java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect 2014年06月29日 ⁄ 综合 ⁄ 共 637字 ⁄ 字号 小 中 大 ⁄ 评论关闭 java.sql.SQLException: null,  message from server: "Host 'xxx' is not allowed to connect to this MySQL server": j

MS SQL Server2014链接MS SQL Server 2000

开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法:<SQL Server创建链接服务器的一些存储过程和例子>http://www.cnblogs.com/insus/archiv

java.sql.SQLException: null, message from server: &quot;Host &#39;xxx&#39; is not allowed to connect to this MySQL server&quot;

java.sql.SQLException: null,  message from server: "Host 'xxx' is not allowed to connect to this MySQL server": 表示该对象不是远程对象,不能通过该对象远程访问数据 解决: 方案一:改表: use mysql ;select user,host,password from user; update user set host = '%' where user='root'; 方

使用sql语句创建修改SQL Server标识列(即自动增长列)

一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列.由于以上特点,使得标识列在数据库的设计中得到广泛的使用.二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:decima