使用域用户的 SQL 连接字符串?

问题描述 投票:0回答:6

以前,对于所有 ASP.NET 应用程序,我们一直在 SQL Server 中使用 sysadmin 用户来连接和添加/更新/删除/获取数据。我们的 SQL 管理员想要删除该帐户并创建一个域帐户,以便我们可以在 .net 应用程序中使用该帐户。

我当前的连接字符串是:

name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=user;Password=password" providerName="System.Data.SqlClient"

使用域帐户的连接字符串是什么?

我尝试过:

name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=domain\user;Password=password" providerName="System.Data.SqlClient"

它不起作用。

是否有其他方法可以使用域帐户连接到 SQL Server?

asp.net sql-server web-config
6个回答
48
投票

查看 connectionstrings.com 了解每种可能的变化 - 这是我一直使用的非常方便的资源

具体来说,您想要这种格式:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

当然,只有当相关域帐户是打开连接的帐户时,这才有效。

没有简单的方法可以使用任意凭据进行连接 - 但您可以模拟有问题的用户,然后进行连接。

这可能有点痛苦。如果用户位于本地网络(或者您控制他们的浏览器配置),另一种选择是在您的站点上使用 Kerberos 身份验证。这些页面将具有相关用户的权限 - 然后您可以使用上面的连接字符串,IIS 将使用每个用户的适当凭据连接到数据库。从安全角度来看,这特别有用,因为数据库能够基于每个用户进行审核,并且权限可以是每个用户/行/列,而不仅仅是每个应用程序。


12
投票

如果您想使用不同的用户帐户,那么登录的用户有两个选择。

选项1

您可以将用户添加到应用程序池身份。

为此,请进入应用程序池的高级设置并编辑身份以使用您想要的用户。

选项2

在 Web 配置中添加此内容:

<identity impersonate="true" userName="Domain\User" password="Password" />

并使用此连接搅拌:

<add name="Name" connectionString="Data source=SqlServer;Initial Catalog=DbName;Integrated security=True" providerName="System.Data.SqlClient"/>

更多详情请参阅: https://msdn.microsoft.com/en-us/library/134ec8tc.aspx

还在这里找到了另一篇好文章 https://www.codeproject.com/tips/520341/implement-impersonation-in-asp-net


5
投票

使用集成安全性:

Integrated Security=SSPI

其中有一个变体:

Trusted_Connection=True

不同的连接字符串(适用于各种数据库)可以在 connectionstrings.com 上找到。

使用这两种方法,您需要确保应用程序在您需要登录的帐户下运行。


4
投票

是的,试试这个:

Data Source=server;Initial Catalog=database;Integrated Security=SSPI;

这指定您希望在仍尝试使用 SQL Server 身份验证的情况下使用集成 Windows 身份验证(即使您输入的用户名看起来像 Windows 域/用户帐户,SQL Server 仍将其视为标准 SQL Server 身份验证)

另请查看 connectionstrings.com


2
投票
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

以上是针对 SQL Server 实例进行 Windows 身份验证的连接字符串。


0
投票

在与域用户进行 SQL 连接的模拟方法中,用户和密码固定在 Windows 凭据中。我们如何通过从每隔一定时间自动生成密码的应用程序(例如 CyberArk)获取密码来动态建立 SQL 连接?

© www.soinside.com 2019 - 2024. All rights reserved.