Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 - Fatal编程技术网

Sql server SQL-“;用户“登录失败”;但是找不到该用户

Sql server SQL-“;用户“登录失败”;但是找不到该用户,sql-server,Sql Server,我有一个情况:在客户的服务器上,同时安装了SQL server 2017和2014。在2014年的一次开发中,我开发了一些运行良好的存储过程。在从2014年到2017年恢复数据库并运行这些过程后,我发现错误: SQLState=28000,NativeError=18456错误=[Microsoft][ODBC驱动程序 13对于用户'ALL\ENTST15$'的SQL Server][SQL Server]登录失败 这个想法是,当我试图添加一个新的登录名时,SQL正在寻找的登录名,我在任何目录中

我有一个情况:在客户的服务器上,同时安装了SQL server 2017和2014。在2014年的一次开发中,我开发了一些运行良好的
存储过程。在从2014年到2017年恢复数据库并运行这些过程后,我发现错误:

SQLState=28000,NativeError=18456错误=[Microsoft][ODBC驱动程序 13对于用户'ALL\ENTST15$'的SQL Server][SQL Server]登录失败

这个想法是,当我试图添加一个新的登录名时,SQL正在寻找的登录名,我在任何目录中都找不到它。我有点卡住了

我做错了什么?谢谢

编辑


我相信您在恢复后有孤立的用户:

“数据库”中几乎有用户,但在您还原到的新SQL server中没有用户。本文将详细介绍这些用户,但这些用户是孤立的,如果在服务器上创建新用户并运行内置存储过程,则可以“重新链接”它们

有一个“自动”代码可以解决此问题,人们使用此存储过程编写了此代码:

sp\u更改用户登录

sp_change_users_login [ @Action = ] 'action'   
[ , [ @UserNamePattern = ] 'user' ]   
[ , [ @LoginName = ] 'login' ]   
[ , [ @Password = ] 'password' ]  
[;] 
您可以在此处阅读有关它的详细信息:


我想每个MSSQL dba都会在某个时候出现在这个位置

好吧,在我尝试了互联网上的所有东西几天后,卸载
SQLServer2014
为我成功了。也许不是最推荐的方法,但对我来说很有效。和平

错误18456有不同的描述确切问题的方法,但是您需要查阅错误日志。很可能,您的数据库未包含,并且您没有在服务器上发出
CREATE LOGIN
,以允许用户首先登录,从而使用户帐户处于孤立状态。但是,用户首先是什么?它是lie ALL\ENTST15$,其中
ALL
代表域,
ENTST15$
是实例的名称。
ENTST15$
是计算机帐户。至于为什么要用计算机帐户登录,我不知道,我没有运行你的客户端。它是作为网络服务运行的服务吗?(对于SQL Server,无论是本地的还是远程的,这是一个与其他任何帐户一样的帐户,并且需要与其他帐户一样的登录。)@jeroenmoster-我编辑了我的帖子。处理
SQL
的查询不使用网络服务,只使用打印屏幕上显示的服务。是否还有其他查询可用,或者存储过程是唯一失败的地方?它是否使用任何类型的链接服务器或到远程服务器的临时连接,这可能意味着问题在于SQL server本身无法登录?那么您是如何开始运行这些存储过程的(即,客户机是什么)?我在两台服务器上都运行了查询,但结果是0行。但是用户首先是什么?它看起来像
ALL\ENTST15$
其中
ALL
代表域,
ENTST15$
是实例的名称。啊,我的答案可能不正确。孤立用户通常指的是混合模式SQL用户,我不确定它是否适用于域用户。