Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
登录到sql server时密码不匹配_Sql_Sql Server_Asp Classic_Sql Server 2008 R2 - Fatal编程技术网

登录到sql server时密码不匹配

登录到sql server时密码不匹配,sql,sql-server,asp-classic,sql-server-2008-r2,Sql,Sql Server,Asp Classic,Sql Server 2008 R2,好,, 我有一个经典的asp应用程序,我有一个连接字符串来尝试连接到db 我的连接字符串如下所示: Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial Catalog=mydb;database=mydb;User Id=me;Password=123 现在,当我通过front en访问db时,会出现以下错误: Microsoft OLE DB Provider for SQL Server error '80040e4d' Log

好,, 我有一个经典的asp应用程序,我有一个连接字符串来尝试连接到db

我的连接字符串如下所示:

 Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial
 Catalog=mydb;database=mydb;User Id=me;Password=123
现在,当我通过front en访问db时,会出现以下错误:

Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'me'. 
我查看了sql探查器,得到了以下结果:

 Login failed for user 'me'.  Reason: Password did not match that
 for the login provided. [CLIENT: <named pipe>]
 Error: 18456, State:8. 
用户“我”登录失败。原因:密码与此不匹配
对于提供的登录名。[客户:]
错误:18456,状态:8。
我所尝试的:

  • 检查了100次我的密码是否正确
  • 尝试此操作:
    在禁用check_policy的情况下更改我的登录名
    (甚至不知道我为什么这样做)
  • 在SSMS中为此帐户启用所有可能的权限
  • 更新:
    4.我尝试了以下连接字符串:
    Provider=SQLOLEDB;数据源=MYPC\MSSQLSERVER;初始目录=mydb;数据库=mydb;集成安全=SSPI

    我得到了这个错误:

    Microsoft OLE DB Provider for SQL Server error '80040e4d'
    Login failed for user 'me'. 
    
    SQL Server的Microsoft OLE DB提供程序错误“80004005” 无法打开登录请求的数据库mydb。登录失败


    请按以下格式进行尝试

    strConnection ="Driver={SQL Server};Server=serverName;Database=DatabaseName;Uid=userID;Pwd=Password;"
    
    Thanks
    Jinesh Jain
    

    将连接字符串更改为:

    Provider=SQLNCLI10;SERVER=MYPC\MSSQLSERVER;DataTypeCompatibility=80;Database=mydb;User Id=me;Password=123
    
    这对我有用。如果服务器是远程的,则尝试使用IP;如果服务器位于同一台计算机上,则尝试使用(本地)IP


    希望这有帮助。

    以下是连接到SQL server 2005的各种方法的参考资料,其中包含示例连接字符串:

    或连接到SQL Server 2008:

    请记住,您应该在运行ASP应用程序的计算机上安装相应的客户端,即SQL Server本机客户端

    不知道您使用的是哪种方法,但OLE DB应用程序可以通过两种方式初始化数据源对象:

    IDBInitialize::Initialize 
    
    IDataInitialize::GetDataSource (seems like you are using this one)
    
    这两种方法初始化相同的OLE DB连接属性,但使用不同的关键字集

    如果您使用的是IDBInitialize::Initialize

    the keyword for userid is UID
    the keyword for password is PWD
    NO Provider keyword may be used
    Trusted_Connection keyword may be used and should be No
    
    如果您使用的是IDataInitialize::GetDataSource

    the keyword for userid is User ID
    the keyword for password is Password
    the Provider keyword is for SQL Server Native Client and it should be SQLNCLI10
    the keyword for aunthentication Integrated Security you can remove it, or use SSPI only if you wish Windows authentication
    
    我对下面的原始连接字符串做了一些更改,请尝试:

    Provider=SQLNCLI10;Data Source=MYPC\MSSQLSERVER;DataTypeCompatibility=80;Initial  Catalog=mydb;User ID=me;Password=123 
    
    本文档描述了在连接到SQL Server 2008 R2时,使用SQL Server本机客户端的OLE DB应用程序的每个连接方法的连接字符串关键字


    尝试将您的用户Id切换到

    MYPC\me
    

    在域中添加用户ID可能有助于Sql server解析权限

    您可以使用management studio与此用户一起登录,并查看您尝试登录的数据库吗

    保存连接字符串的文件可能存在字符编码问题。连接字符串是否作为文本存储在其自己的文件中?如果是这样,请尝试在记事本++中打开该文件,并检查顶部“Encoding”(编码)菜单中选择的内容。尝试将其更改为UTF-8或ANSI

    更新

    我刚读了一些评论,听起来你不能使用ManagementStudio登录。听起来Windows身份验证模式与SQL Server身份验证模式是一个很好的根本原因候选模式

    试试这个:

    • 登录到management studio并使用sa连接到数据库
    • 右键单击左侧对象资源管理器中的数据库服务器
    • 转到“安全”选项卡
    • 确保您使用的是“SQL Server和Windows身份验证模式”,而不仅仅是“Windows身份验证模式”
    • 如果您当前正在使用“Windows身份验证模式”,请更改它
    • 在安全>登录中查找应用程序用户
    • 右键单击>属性
    • 确保选择了“SQL Server身份验证”
    • 如果不是,您可以尝试更改它,或创建新用户,并确保选择“SQL Server身份验证”

    方法应该是这样的,例如…
    Provider=SQLNCLI;Server=myServerName\theInstanceName;数据库=myDataBase;可信连接=是


    (以防万一,这是可选的)

    首先,您了解SQL Server身份验证和Windows身份验证之间的区别吗?根据一些评论,我不确定


    您声明您已检查密码100次;您是否使用SQL Server身份验证登录到SSMS并在那里进行验证?我的理论是,您有一个与Windows帐户同名的SQL Server帐户,并且您正在使用Windows帐户而不是SQL帐户连接到SSM。

    确定您的计算机名都是大写的吗?不久前,我发现camelCase中的名称或其中带有空格的名称会导致此类行为


    如果不是,请至少添加一个字母进行更改,否则更改将不会成功

    在我的例子中,我有一个使用SQL Server 2008 R2的连接字符串,但在更新到SQL Server 2014后,我收到了提到的错误。下面是我最初的连接字符串的样子:

    server=.\SQLEXPRESS;database=mydb;User Id=me;Password=123
    
    以下是适用于2014的更新连接字符串:

    Integrated Security=SSPI;Data Source=.\SQLEXPRESS;Database=mydb;User Id=me;Password=123
    

    您可以使用任何帐户登录吗?例如,如果您创建了一个新帐户并使用它,它是否有效?不,单个帐户不起作用。(如果我直接转到SSMS,它确实可以工作。)因此,我假设IIS或Windows身份验证有问题…不知道…@user194076登录是否具有SQL Server身份验证模式?@Igor,我如何检查?你是说在SSMS-Properties-Security中右键点击服务器吗?是的,上面写着:“SQL server和windows身份验证模式”@user194076是的,我说过了。可能是您试图使用windows身份验证模式连接到logiw。您读过了吗?现在它显示以下内容:Microsoft OLE DB ODBC驱动程序提供程序错误“80004005”[Microsoft][ODBC驱动程序管理器]未找到数据源名称,并且没有指定的默认驱动程序提供程序=SQLOLEDB;数据源=MYPC\MSSQLSERVER;初始目录=mydb;数据库=mydb;用户Id=me;密码=123请删除数据库=mydb;因为initialcatalog和数据库是相同的东西。没有帮助:(您可以使用相同的凭据登录到SQL server管理吗