现象:---------------------------------------------------
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_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQLServer\LoginMode
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 站点:
http://support.microsoft.com/contactus/?ws=support
() http://support.microsoft.com/contactus/?ws=support
注意"可用的热修补程序下载"表格显示此热修复补丁程序适用的语言。如果您看不到您的语言,这是因为热修复补丁程序不适用于该语言。
先决条件
您必须具有要应用此修补程序安装的 SQL 服务器 2005 Service Pack 1。