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

SQL提示Login failed for usersa错误的解决方案

程序员文章站 2022-06-09 23:05:35
...

现象:--------------------------------------------------- 1、连接SQL Server数据库提示:Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection 错误 问题:------------------------------------------------- 初

  现象:---------------------------------------------------

  1、连接SQL Server数据库提示:Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection 错误

  问题:-------------------------------------------------

  初步分析应该与用户权限有关,查阅帮助文件,微软官方给出的原因:

  当 SQL Server 2000 安全身份验证设置为“仅 Windows”, 并且存在下列情况之一时,就会发生此问题:

  您正在尝试使用 SQL Server 登录连接到 SQL Server 2000 数据库。

  您正在尝试使用信任的 SQL Server 连接来连接到安装在基于 Microsoft Windows 98 的计算机上的 SQL Server 2000 桌面引擎(也称为 MSDE 2000)数据库。

  您正在尝试从某 Windows 帐户连接到 SQL Server 2000 数据库,而该帐户没有足够的权限连接到服务器。

  解决:--------------------------------------------

  官方给出的解决办法:

  SQL Server 登录

  使用有效的 Windows 登录连接到 SQL Server。如果必须继续使用 SQL Server 登录,您可以将在 SQL Server 2000 中的安全身份验证模式更改为“SQL Server 和 Windows”。为此,请按照下列步骤操作:

  启动企业管理器。

  展开“Microsoft SQL Servers”,然后展开“SQL Server 组”。

  右键单击要更改为“SQL Server 和 Windows”身份验证的服务器,然后单击“属性”。

  在“SQL Server 属性”对话框中,单击“安全”选项卡,单击“SQL Server 和 Windows”,然后单击“确定”。

  当提示您重新启动 SQL Server 服务时,单击“是”。

  SQL Server 2000 桌面引擎 (MSDE 2000) 安装在基于 Microsoft Windows 98 的计算机上

  当 SQL Server 2000 桌面引擎安装在基于 Windows 98 的计算机上时,必须使用标准的 SQL Server 登录连接到数据库。当您在基于 Windows 98 的计算机上安装 SQL Server 2000 桌面引擎时,不支持“仅 Windows”身份验证模式。

  Windows 帐户权限不足

  要解决此问题,必须将 Windows 帐户添加到 SQL Server,然后为用户需要访问的每个数据库授予适当的权限。为此,请按照下列步骤操作:

  启动企业管理器。

  展开“Microsoft SQL Server”,然后展开“SQL Server 组”。

  展开您的服务器,然后展开“安全”。

  右键单击“登录”,然后单击“新建登录”。

  在“SQL Server 登录属性”对话框中,在“名称”框中输入 Windows 帐户名。在“域”列表中,选择该 Windows 帐户所属的域。

  单击“数据库访问”选项卡,为客户端设置适当的权限,然后单击“确定”

  注意:在添加帐户后,您仍然必须为用户需要访问的各个数据库对象授予访问权限。

  2、刚装完SQL Server 2008 Express,尝试使用sa账号登录,但总是出现Login failed for user 'sa' 错误。觉得应该是SQL Server的认证模式没设对,SQL Server Express默认是Windows Authentication模式,我必须设成Mixed Authentication Mode才可以。

  所以查了一下文档,微软的官方文档说只要把sa账号enable就可以了,但试过后同样的错误。后来截取了SQL Server Management Studio的脚本才发现还必须要改一个注册表键值才行。

  在我的机器上该键值是:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10.SQLEXPRESSMSSQLServerLoginMode

  1 - Windows Authentication Mode

  2 - Mixed Authentication Mode

  改成2以后就能用sa账号登录了。

  *补充一下,必须得重启SQL Server的服务改动才能有效。

  3、在 SQL Server 2005 中,您将收到"登录错误: 18456"错误消息在您尝试登录到 SQL Server 2005 实例并且下列条件都为真时:

  •您尝试使用 SQL Server 身份验证的登录来登录到该实例。

  •在 SQL Server 服务配置服务的启动帐户使用域帐户。

  •SQL 身份验证登录接收"登录错误: 18456"错误消息被配置为使用 Windows 域密码策略实施。

  注意默认情况下,除非您显式设置创建登录语句的 CHECK_POLICY 子句为 OFF 时创建给定的登录启用 SQL 身份验证登录的 Windows 域密码策略实施。

  •SQL Server 启动服务的服务帐户已锁定或禁用域控制器上。

  如果配置登录审核失败登录事件写入错误日志的 SQL Server 实例,以下消息将写入 SQL Server 错误日志文件:

  错误消息 1

  日期时间登录错误: 18456,,严重: 14 日状态: 10。

  解决方案

  可以从 Microsoft 获得支持的热修复补丁程序。但是,此修补程序仅能用于解决本文中描述的问题。此热修复补丁程序仅适用于正出现此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

  如果此修补程序已可供下载,则此知识库文章顶部"提供修补程序下载"部分。如果未显示此节,请联系 Microsoft 客户服务和支持,以获取此修复程序。

  注意如果出现其他问题或需要任何故障诊断,您可能需要创建单独的服务请求。其他支持问题和事项,不适合于此特定的修补程序将收取照常收取支持费用。Microsoft 客户服务和支持电话号码,或创建单独的服务请求的完整列表,请访问下面的 Microsoft Web 站点:

  ?ws=support

  () ?ws=support

  注意"可用的热修补程序下载"表格显示此热修复补丁程序适用的语言。如果您看不到您的语言,这是因为热修复补丁程序不适用于该语言。

  先决条件

  您必须具有要应用此修补程序安装的 SQL 服务器 2005 Service Pack 1。