C# 用户‘;的SQL登录失败;S-1-5-21-1482476501-1214440339-839522115-500';长id在这里
我有一个在生产服务器上运行的窗口服务。该服务经常访问数据库服务器来处理记录。每天有一次它抛出下面的错误 用户的登录失败-1-5-21-1482476501-1214440339-839522115-500 Msg 18456,第14级,状态1C# 用户‘;的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] $
我想知道为什么它在异常中显示的是长用户名而不是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身份验证凭据用户名、密码和生成连接字符串。但是每天一次