Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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
C# 用户‘;的SQL登录失败;S-1-5-21-1482476501-1214440339-839522115-500';长id在这里_C#_Sql Server - Fatal编程技术网

C# 用户‘;的SQL登录失败;S-1-5-21-1482476501-1214440339-839522115-500';长id在这里

C# 用户‘;的SQL登录失败;S-1-5-21-1482476501-1214440339-839522115-500';长id在这里,c#,sql-server,C#,Sql Server,我有一个在生产服务器上运行的窗口服务。该服务经常访问数据库服务器来处理记录。每天有一次它抛出下面的错误 用户的登录失败-1-5-21-1482476501-1214440339-839522115-500 Msg 18456,第14级,状态1 我想知道为什么它在异常中显示的是长用户名而不是sql用户名。服务器版本2012。正如其他人所评论的,这是一个Windows SID。我也遇到了同样的问题(试图从SID中获取帐户名),我有一个小的高级脚本用于翻译: param( [string] $

我有一个在生产服务器上运行的窗口服务。该服务经常访问数据库服务器来处理记录。每天有一次它抛出下面的错误

用户的登录失败-1-5-21-1482476501-1214440339-839522115-500 Msg 18456,第14级,状态1


我想知道为什么它在异常中显示的是长用户名而不是sql用户名。服务器版本2012。

正如其他人所评论的,这是一个Windows SID。我也遇到了同样的问题(试图从SID中获取帐户名),我有一个小的高级脚本用于翻译:

param(
    [string] $sid = (Read-Host "Enter a SID")
)
$objSID = New-Object System.Security.Principal.SecurityIdentifier ( $sid )
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount] )
$objUser.Value

正如其他人所评论的那样,这是一个Windows SID。我也遇到了同样的问题(试图从SID中获取帐户名),我有一个小的高级脚本用于翻译:

param(
    [string] $sid = (Read-Host "Enter a SID")
)
$objSID = New-Object System.Security.Principal.SecurityIdentifier ( $sid )
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount] )
$objUser.Value
根据特定的
状态,在以下情况下遇到1

在连接字符串中,将用户指定为NT帐户

因此,您有一个应用程序,它使用/构建一个连接字符串,在该字符串中,它们将自己的NT SID指定为用户名。如果应用程序希望使用集成安全性进行身份验证,则应使用SSPI。

根据特定的
状态,在以下情况下会遇到状态1

在连接字符串中,将用户指定为NT帐户


因此,您有一个应用程序,它使用/构建一个连接字符串,在该字符串中,它们将自己的NT SID指定为用户名。如果应用程序希望使用集成安全性进行身份验证,它应该使用SSPI。

我遇到了完全相同的问题,它是由包含的数据库引起的。在我的例子中,修复方法是创建一个全局用户,并将该用户作为db_所有者分配给数据库,而不是使用包含的用户帐户

要创建全局用户,请执行以下步骤:

  • 登录到SQL企业管理器
  • 展开左侧树中的安全节点
  • 右键单击“登录”并选择“新登录…”
  • 输入登录名和密码
  • 单击左侧窗格中的“用户映射”
  • 在右侧窗格中选择数据库,然后选择下面的相关角色。在我的例子中,我希望用户是db_所有者
创建新的全局登录后,需要更新连接到数据库的应用程序以使用新凭据


微软于2013年7月30日承认了这一特殊问题,请参见。他们声明“我们正在解决此问题,修复程序将在下一个或未来的service pack中”,公平地说,自SP1以来,我没有应用任何累积热修复程序包,因此这可能已经修复。

我遇到了完全相同的问题,它是由包含的数据库引起的。在我的例子中,修复方法是创建一个全局用户,并将该用户作为db_所有者分配给数据库,而不是使用包含的用户帐户

要创建全局用户,请执行以下步骤:

  • 登录到SQL企业管理器
  • 展开左侧树中的安全节点
  • 右键单击“登录”并选择“新登录…”
  • 输入登录名和密码
  • 单击左侧窗格中的“用户映射”
  • 在右侧窗格中选择数据库,然后选择下面的相关角色。在我的例子中,我希望用户是db_所有者
创建新的全局登录后,需要更新连接到数据库的应用程序以使用新凭据


微软于2013年7月30日承认了这一特殊问题,请参见。他们声明“我们正在解决此问题,修复程序将在下一个或未来的service pack中”,公平地说,自SP1以来,我没有应用任何累积热修复程序包,因此这可能已经修复。

看起来像windows安全标识符(SID);不是sql用户。我会检查这是否与windows身份验证和SQL身份验证有关。我相信这是AD/SQL身份验证生成的用户令牌。我还详细检查了服务器日志,发现在引发此异常之前的几分钟,有日志显示客户端会话能够重用spid(会话),但不确定为什么会在一天内发生几次。我不确定如何诊断问题。Dan,是的,这是SID,但我不确定我需要在windows身份验证与SQL身份验证中检查什么。请您帮助我。当应用程序生成连接字符串时,我传递用户名、密码和数据库名称以连接到驻留在另一台计算机中的SQL server,并且每天它都会用这么长的名称抛出一个错误。此长名称是否为服务器在运行应用程序的计算机或SQL server运行的计算机上创建的内部SID。它看起来像windows安全标识符(SID);不是sql用户。我会检查这是否与windows身份验证和SQL身份验证有关。我相信这是AD/SQL身份验证生成的用户令牌。我还详细检查了服务器日志,发现在引发此异常之前的几分钟,有日志显示客户端会话能够重用spid(会话),但不确定为什么会在一天内发生几次。我不确定如何诊断问题。Dan,是的,这是SID,但我不确定我需要在windows身份验证与SQL身份验证中检查什么。请您帮助我。当应用程序生成连接字符串时,我传递用户名、密码和数据库名称以连接到驻留在另一台计算机中的SQL server,并且每天它都会用这么长的名称抛出一个错误。这个长名称是否是服务器在运行应用程序的计算机或SQL server运行的计算机上创建的内部SID。Remus,是的,我有一个生成连接字符串的应用程序,我们在其中仅指定SQL身份验证凭据用户名、密码和生成连接字符串。但是每天一次