使用具有通用凭据的C#访问SQL server
我有一个通用用户(用户名:user和密码:user),可以访问我的SQL数据库。 因此,如果我使用以下代码,我可以毫无问题地访问它:使用具有通用凭据的C#访问SQL server,c#,sql,sql-server,C#,Sql,Sql Server,我有一个通用用户(用户名:user和密码:user),可以访问我的SQL数据库。 因此,如果我使用以下代码,我可以毫无问题地访问它: using System.Data.SqlClient; namespace ConsoleApp1 { Class Program { static void Main(string[] args) { string conString = "Data source=server
using System.Data.SqlClient;
namespace ConsoleApp1
{
Class Program
{
static void Main(string[] args)
{
string conString = "Data source=server; Initial catalog=db; Integrated security=true";
SqlConnection conn = new SqlConnection(conString);
using (conn)
{
conn.Open();
SqlCommand command = new SqlCommand("SELECT * FROM Table", conn);
SqlDataReader reader = command.ExecuteReader();
conn.Close();
}
}
}
}
但是,如果我通过将IntegratedSecurity=true
替换为User ID=User来更改构造;Password=user
,则我有一个例外
System.Data.SqlClient.SqlException:'Login failed for user 'user'.'
我希望对这些凭据进行硬编码,以便每个无法访问数据库的用户都可以使用这些通用凭据,但我无法解决此异常。如果关闭集成安全性,则它将停止使用windows凭据,而必须在SQL Server自身中设置特定的用户帐户。Ps。需要明确的是,您不能使用集成安全性以不同于代码所运行的windows用户的身份登录(以防万一,这正是您所希望的)。此处有一些可视提示:@PabloD.,确保服务器配置为允许SQL身份验证(默认情况下仅限windows)。检查SQL Server错误日志,因为它将提供有关登录失败原因的更多详细信息。Integrated Security=true使用登录用户的windows凭据。因此,您永远不会同时使用Integrate Security=true和用户名/密码。