我如何在 SQL SERVER 2008 中使用 Active Directory 用户进行身份验证但没有 Windows 身份验证

Posted

技术标签:

【中文标题】我如何在 SQL SERVER 2008 中使用 Active Directory 用户进行身份验证但没有 Windows 身份验证【英文标题】:How i can authenticate in SQL SERVER 2008 with Active Directory User but without Windows Authentication 【发布时间】:2016-12-27 16:14:42 【问题描述】:

在网上查阅了很多资料后,我找不到解决办法。 我希望你能理解我,我的英语不是最好的......

问题:

我想使用域(活动目录)的有效用户对 SQL Server 进行身份验证,该用户是从我的应用程序(旧应用程序)的登录名(用户名和密码)中获取的。 此用户已登录到我的应用程序,是由 Active Directory (LDAP) 验证的用户,并且是在 SQL Server 上具有日志记录权限的组的成员(“域\组名称”)。

尝试:

所以问题是,如果我使用 Windows 身份验证(它工作正常),我将使用 Windows 用户而不是应用程序用户(它并不总是同一个用户)。另一方面,如果我使用 SQL Server 身份验证,我必须独立于域创建和维护这些用户的密码......

问题:

如何使用登录到我的应用程序的用户向 SQL Server 进行身份验证。属于域组成员的用户,在 SQL Server 中具有日志记录权限,但并非始终是登录的用户窗口?

示例:

用户:usr1usr2 都是有效的域用户

Usr1 是有权访问 SQL Server 的组的成员。

Usr2 不是 SQL Server 访问组的成员(无法登录)。

我想用 usr2 登录 Windows,用 usr1 登录应用程序。两者都具有域凭据。

提前致谢。

【问题讨论】:

这可能就是你要找的东西:Connect different Windows User in SQL Server Management Studio (2005 or later) @SqlZim,是的,我看到了这种可能性,但我想知道是否还有其他身份验证选项。这样,我必须使用 windows 用户打开应用程序,并且一旦完成了我的应用程序的身份验证,我应该关闭它并使用登录应用程序的用户的“runas”再次打开它......这似乎没有“正确”的东西,但显然是唯一的选择......谢谢! 您是否正在编写自己的应用程序来连接到 SQL Server?例如,在 C# 中,您可以验证不同的用户帐户(要求用户提供不同的用户名/密码)并使用它连接到 SQL Server。 @GabrielLuci,不,这是我正在尝试改进的旧 vb6 应用程序。能够使用域用户已经从应用程序中删除了一种身份验证方法,而不必为每个用户维护如此多的凭据。 【参考方案1】:

我能找到的唯一解决方案是“runas”,就像 SqlZim 看到的那样。

谢谢。

【讨论】:

以上是关于我如何在 SQL SERVER 2008 中使用 Active Directory 用户进行身份验证但没有 Windows 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL Server Management Studio (2008) 在 SQL Server Compact Edition 中创建列

如何在SQL Server 2008 Express中更改sa密码?

如何在 Python 中使用表值参数访问 SQL Server 2008 存储过程

我如何在 SQL SERVER 2008 中使用 Active Directory 用户进行身份验证但没有 Windows 身份验证

如何在 SQL Server 2000/2005/2008 中使用 FLOAT 转换小数位数

如何在SQL Server 2008R2中查找未使用的列