通过SharePoint对MS SQL 2005 DB进行传递身份验证?
在我们的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身份验证。