我有这个错误:
A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)
(Microsoft SQL Server, Error: 233)
我知道,这个网站上有类似的问题,答案是,启用TCP / IP和管道。 但是我启用了两者,但仍然不起作用:
我使用的是Microsoft SQL Server 2012,用户拥有完全权限。
答案 0 :(得分:48)
要解决此问题,请使用Windows身份验证连接到SQL Management Studio,然后右键单击服务器节点Properties-> Security并启用SQL Server和Windows身份验证模式。如果你正在使用' sa'确保帐户已启用。要做到这一点,打开' sa'在登录并查看状态。
如果这不起作用,您可能需要重新安装SQL Server
答案 1 :(得分:47)
默认情况下,服务器仅设置为Windows身份验证。没有任何通知,错误的起源就是那个,因此很难弄明白。即使您仅使用SQL身份验证创建用户,SQL Management工作室也不会发出警报。
答案是:从Windows切换到SQL身份验证:
properties
; security
标签; SQL Server and Windows Authentication mode
; 您现在可以使用您的登录名/密码进行连接。
答案 2 :(得分:13)
答案 3 :(得分:8)
答案 4 :(得分:6)
同样强制TCP / IP连接(通过提供127.0.0.1
而不是localhost
或.
)可以揭示错误的真正原因。在我的例子中,连接字符串中指定的数据库名称不正确。
所以,这是清单:
答案 5 :(得分:6)
如果您尝试使用SQL凭据登录,还可以尝试在注册表中更改SQL Server的LoginMode,以允许SQL Server和Windows身份验证。
答案 6 :(得分:4)
我第二次面对这个问题而所有以前的答案都失败了,幸运的是以下请求完成了这项工作:
b10
答案 7 :(得分:3)
所以,我最近也有这个问题,用于集成安全性,事实证明,我的问题实际上很容易解决,但是主要是因为我忘记在连接中添加“ Trusted_Connection = True” 串。
我知道这似乎很明显,但是我花了20分钟左右,直到我意识到我已经从connectionstrings.com复制了我的连接字符串格式,并且连接字符串的那一部分丢失了。
简单,我有点傻,但这就是我的答案。
答案 8 :(得分:2)
我有同样的问题 “已成功与服务器建立连接,但随后发生错误 在登录过程中。 (提供者:共享内存提供者,错误:0 - 没有进程 在管道的另一端。)“
我的联系是:
服务器= POS06 \ SQLEXPRESS; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas;用户ID = sa; PWD = 12345;连接超时= 10;
但我的SQL是POS06 \ MSQL2014
将连接字符串更改为
server = POS06 \ MSQL2014; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas;用户ID = sa; PWD = 12345;连接超时= 10;
它有效。
答案 9 :(得分:2)
对我来说,我的登录用户的密码已过期,并且我得到了同样的例外。 然后我使用Windows身份验证模式登录并更改相关用户的密码,它解决了我的问题。
答案 10 :(得分:2)
也存在此错误,原因很简单,但并不明显:密码错误。不知道为什么我不能从刚安装的SQL 2016服务器中获得“登录失败”的信息。
答案 11 :(得分:2)
是的,此错误也很可能是“某事失败,祝您好运。”-在我看来,这是一个错误的用户名。 SQL Server 2019 RC1。
答案 12 :(得分:1)
就我而言,通过 VPN 远程登录工作正常。但是从安装了sql server的服务器连接,失败了。
事实证明,实例名称不是默认的,例如。 SQLEXPRESS。因此,需要在连接时显式指定。
服务器名称:.
如果我是远程连接,则不必这样做,只需
答案 13 :(得分:1)
就我而言:为用户分配系统管理员角色。
答案 14 :(得分:1)
在我的情况下,数据库已恢复,并且已经有用于连接的用户。我不得不在数据库中删除用户并重新创建登录的用户映射。
删除用户
DROP USER [MyUser]
如果用户拥有任何架构,它可能会失败。在删除用户之前,必须将这些分配给 dbo。使用下面的第一个查询获取用户拥有的架构,然后使用第二个查询更改这些架构的所有者(HangFire 是从前一个查询中获得的架构)。
select * from information_schema.schemata where schema_owner = 'MyUser'
ALTER AUTHORIZATION ON SCHEMA::[HangFire] TO [dbo]
答案 15 :(得分:1)
始终尝试使用那些凭据通过SQL Management Studio登录。这可能会揭示一些您在运行时未在代码中获得的详细信息。 我检查了SQL + Windows身份验证,重新启动了服务器,但仍然没有运气。 尝试使用SQL Management登录后,出现以下提示:
尽管登录是在几分钟前创建的,但密码已过期。无论如何,设置了新密码,更新了连接字符串,一切正常。
答案 16 :(得分:0)
按照另一个答案进行操作,如果仍然无法正常工作,请重新启动计算机以有效地重新启动Windows上的SQL Server服务。
答案 17 :(得分:0)
确保您在Security->中指定了用户登录,如果没有 - 添加它并重试。