通过SharePoint对MS SQL 2005 DB进行传递身份验证?

时间:2020-03-06 14:34:54  来源:igfitidea点击:

在我们的Active Directory域中,我们有一个MS SQL 2005服务器和一个SharePoint(我相信是MOSS 3.0)服务器。两者都针对我们的LDAP服务器进行身份验证。希望允许这些经过身份验证的SharePoint访问者查看MS SQL数据库中的某些数据。主要挑战是身份验证。

有关使传递身份验证起作用的任何提示?我已经在(Google)中搜索了要使用的正确连接字符串,但一直在寻找具有嵌入式凭据或者其他方案的连接字符串。我知道我想使用SSPI,但是不确定如何实现。

澄清:我们尚未设置单点登录服务器(例如Shibboleth)

解决方案

如果我们使用的是C,则代码和连接字符串为:

using System.Data.SqlClient; 
... 
SqlConnection oSQLConn = new SqlConnection(); 
oSQLConn.ConnectionString = 
    "Data Source=(local);" + 
    "Initial Catalog=myDatabaseName;" +
    "Integrated Security=SSPI";
 //Or
 // "Server=(local);" + 
 // "Database=myDatabaseName;" + 
 // "Trusted_Connection=Yes";
oSQLConn.Open(); 
... 
oSQLConn.Close();

可以在Carl Prothman的博客中找到有关连接字符串的出色资源。 Yoy可能应该用SQL Server的名称替换(local)

我们将需要配置SQL Server以便为域角色提供所需的访问特权。在SQL Server中,我们需要转到Security \ Logins并确保我们具有Domain \ User角色(即MyCompany \ SharpointUsers)。在配置中,我们应该有

" SharePoint用户"是什么意思?

我们是说他们要在SharePoint页面中查看数据吗?
在这种情况下,我们必须在该页面/应用程序中进行模拟,并可能正确设置Kerberos。

然后,我们将必须在SQL Server上为这些SharePoint用户(或者更好的是其AD组)分配适当的特权。

实际上,Windows身份验证可验证用户是否合法,而无需通过网络传递用户名和密码。而直通身份验证确实会通过网络传递用户名和密码。它们不是同一件事。使用Leo Moore提供的连接字符串和代码可使SQL使用Windows身份验证,默认情况下使用Windows身份验证,而不是OP询问的Passthrough身份验证。