Authentication 如何在RegisteredServer中指定身份验证
基于我关于在Microsoft.SqlServer.Management.RegisteredServer中创建RegisteredServer的问题, ,我正在从Azure SQL Server添加数据库。我可以添加数据库,但身份验证基于Authentication 如何在RegisteredServer中指定身份验证,authentication,azure-sql-database,Authentication,Azure Sql Database,基于我关于在Microsoft.SqlServer.Management.RegisteredServer中创建RegisteredServer的问题, ,我正在从Azure SQL Server添加数据库。我可以添加数据库,但身份验证基于Windows身份验证 绝对,我无法连接到Azure: 因此,我正在寻找在C#code中指定身份验证的解决方案。这很奇怪,因为我用用户名和密码传递连接字符串: var registeredServer = new RegisteredSer
Windows身份验证
绝对,我无法连接到Azure:
因此,我正在寻找在C#code
中指定身份验证的解决方案。这很奇怪,因为我用用户名和密码传递连接字符串:
var registeredServer = new RegisteredServer(serverName)
{
ConnectionString = "Server=tcp:server.database.windows.net,1433;Initial Catalog=...;Persist Security Info=true;User ID=...;Password=....;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;"
}
首先,Azure SQL。据我所知,windows身份验证适用于本地SQL Server
而且,你需要
之后,您可以使用AAD凭据连接到Azure SQL。如果您的本地帐户通过AD Connect同步到Azure AD。然后,您也应该能够使用AD凭据连接到Azure SQL。最后,我解决了这个问题,我们需要安装
System.Security.Cryptography.ProtectedData包以设置连接字符串:
Install-Package System.Security.Cryptography.ProtectedData -Version 4.6.0
然后,我们需要指定CredentialPersistenceType和AuthenticationType,如下所示:
var registeredServer = new RegisteredServer(databaseEngineServerGroup, serverName)
{
ConnectionString = localConnectionString,
Description = $"This is a sample connection to {serverName}",
CredentialPersistenceType = CredentialPersistenceType.PersistLoginNameAndPassword,
AuthenticationType = 1,
};