我正在尝试使用Process帐户连接到数据库,但是我只能使用IntegratedSecurity进行连接。如果我尝试手动设置它,则由于无法用用户登录,应用程序将引发错误。
我试图在不同的语言上运行此代码,但是发生相同的问题。
class Program {
static void Main(string[] args) {
try {
Console.WriteLine("Connect to SQL Server and demo Create, Read, Update and Delete operations.");
// Build connection string
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "datasource";
builder.InitialCatalog = "warehouse";
builder.UserID = "user";
builder.Password = "pass#$word";
//builder.IntegratedSecurity = true;
// Connect to SQL
Console.WriteLine("Connecting to SQL Server ... ");
Console.WriteLine(builder);
using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) {
connection.Open();
Console.WriteLine("Done.");
}
}
catch (SqlException e) {
Console.WriteLine(e.ToString());
}
Console.WriteLine("All done. Press any key to finish...");
Console.ReadKey(true);
}
}
我希望能够在不需要IntegratedSecurity的情况下连接到数据库。
此外,这是到远程服务器,而不是本地主机。我可以使用Windows身份验证在SSMS中进行连接,但是如果我尝试将其设置为通过硬编码的凭据,则会引发错误消息。
错误(来自评论)
Microsoft.Data.SqlClient.SqlException(0x80131904):登录失败 用户“用户”。在 Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭证,对象providerInfo,字符串newPassword,SecureString newSecurePassword,布尔型redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,布尔 applyTransientFaultHandling,字符串accessToken)
答案 0 :(得分:-1)
只要做
builder.IntegratedSecurity = false;
它将起作用。