用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。

k. 2018-11-21 09:37:05
小弟是真滴没有办法了,请各位大佬帮一下忙,谢谢,非常感谢.

如题 不管是sa账号还是 新建的账号都是出这个问题.跟程序是在linq.ToList()时出的.
用udl和新写一个程序是可以连上数据库的.相同的连接串.
服务器是2000 的.sp3也是装过了, 版本号
Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
Aug 6 2000 00:57:48
Copyright (c) 1988-2000 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
程序是用的EF6,测试程序直接用的ODBC测试的,因为数据库项目上的数据库有些老,也不能拷库,所以没用EF测试.
程序连接另外一个人2000的数据库也可以(在别的项目上实测,不是同一个项目.那个项目的程序拷过来相同的问题)
客户端电脑也是试过,没有问题.
目前有点头大...不知道怎么排查了..
另附程序日志堆栈.

2018-11-21 09:19:27,522 [7] ERROR Castle.Proxies.CustomerCheckUpRepositoryProxy [(null)] - 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
System.Data.Entity.Core.EntityException: 基础提供程序在 Open 上失败。 ---> System.Data.SqlClient.SqlException: 用户 'herpeis' 登录失败。原因: 未与信任 SQL Server 连接相关联。
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
在 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
在 System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
在 System.Data.SqlClient.SqlConnection.Open()
在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()
在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation)
在 System.Data.Entity.Core.EntityClient.EntityConnection.Open()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Data.Entity.Core.EntityClient.EntityConnection.Open()
在 System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection()
在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
在 System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass63`1.<ExecuteStoreQueryReliably>b__61()
在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters)
在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery[TElement](String commandText, ExecutionOptions executionOptions, Object[] parameters)
在 System.Data.Entity.Internal.InternalContext.<>c__DisplayClass13`1.<ExecuteSqlQuery>b__12()
在 System.Lazy`1.CreateValue()
在 System.Lazy`1.LazyInitValue()
在 System.Lazy`1.get_Value()
在 System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
...全文
488 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
k. 2018-11-23
  • 打赏
  • 举报
回复
嗯,谢了.

引用 11 楼 吉普赛的歌 的回复:
[quote=引用 10 楼 qq_27497661 的回复:]
同一个串,用测试程序没问题.直接复制的串.

[quote=引用 8 楼 yenange 的回复:]
检查一下, sqlserver 是否有多个实例?
连接串中的实例, 与 ssms 用 sa 登录成功的实例是否一致?
[/quote]

老旧的数据库sqlserver2000, 新的技术EF……

如果内容不多的话, 直接用 SqlHelper 改写算了吧。[/quote]
yongcai64900 2018-11-22
  • 打赏
  • 举报
回复
SQL Server 2008 Windows身份验证改为混合模式身份验证
由于需要,要把SQL2008单一的Windows身份验证改为混合模式身份验证。在此做一备忘。

步骤:

1、用Windows身份验证方式进入SQL2008,在【对象资源管理器】右键击【根目录】:

选择右键菜单中的【属性】:

选择【安全性】,然后勾选【Sql Server和Windows身份验证模式】,然后点击【确定】。

到这里就可以断开连接退出并使用SQL Server身份验证模式登录了。

由于默认不启用sa,所以如果启用sa账户登录,则还需要如下设置:

2、回到【对象资源管理器】,展开【安全性】,展开【登录名】就会看到登录名sa,右键sa,选择【属性】:

弹出:

选择【状态】,右边的登陆选【启用】,确定。

这样就可以用sa登录,密码默认为空

3、若要修sa密码,可做如下操作:

选择sa【属性】:

选择【常规】,在密码处录入新的密码则可。

4、万一还登录不了,可做如下尝试:
打开【SQL Server配置管理器】然后展开【SQL Server网络配置】然后点击【MSSQLSERVER 的协议】,在右边启用【TCP/IP协议】:

然后在【SQL Server服务】:

里重启MSSQLSERVER服务即可。
吉普赛的歌 2018-11-22
  • 打赏
  • 举报
回复
检查一下, sqlserver 是否有多个实例? 连接串中的实例, 与 ssms 用 sa 登录成功的实例是否一致?
k. 2018-11-22
  • 打赏
  • 举报
回复
为什么都说是这个 混合认证的问题呢? 如果不开这个混合认证我测试程序能用?ssms客户端能用sa登录吗?
吉普赛的歌 2018-11-22
  • 打赏
  • 举报
回复
引用 10 楼 qq_27497661 的回复:
同一个串,用测试程序没问题.直接复制的串. [quote=引用 8 楼 yenange 的回复:] 检查一下, sqlserver 是否有多个实例? 连接串中的实例, 与 ssms 用 sa 登录成功的实例是否一致?
[/quote] 老旧的数据库sqlserver2000, 新的技术EF…… 如果内容不多的话, 直接用 SqlHelper 改写算了吧。
k. 2018-11-22
  • 打赏
  • 举报
回复
同一个串,用测试程序没问题.直接复制的串.

引用 8 楼 yenange 的回复:
检查一下, sqlserver 是否有多个实例?
连接串中的实例, 与 ssms 用 sa 登录成功的实例是否一致?
k. 2018-11-21
  • 打赏
  • 举报
回复
简单的连接程序没问题, sql server 的连接工具在 客户端电脑上也是可以使用. 链接图片中的这是相同.

引用 4 楼 yenange 的回复:
修改认证方式之后, 重启一下 sqlserver 服务
吉普赛的歌 2018-11-21
  • 打赏
  • 举报
回复
修改认证方式之后, 重启一下 sqlserver 服务
吉普赛的歌 2018-11-21
  • 打赏
  • 举报
回复
https://blog.csdn.net/ccx_john/article/details/16819919 如果还不行。那就写个最简单的连接程序, 看是否能成功?
k. 2018-11-21
  • 打赏
  • 举报
回复
认证方式肯定是混合登录的,而且ssms也是可以正常登录打开,查询数据的.
xuzuning 2018-11-21
  • 打赏
  • 举报
回复
检查 SQL Server 的认证方式
enaking 2018-11-21
  • 打赏
  • 举报
回复
请参考 :https://blog.csdn.net/coolhty/article/details/2305034

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧