我希望使用Microsoft.SqlServer.Management.Smo.Transfer
在Azure SQL数据库之间传输数据和架构,并希望使用Active Directory用户名和密码。我可以使用
Authentication="Active Directory Password"
以及用户名和密码,但不知道如何使用AD凭据使Microsoft.SqlServer.Management.Smo.Transfer
对象连接到目标服务器。
当我尝试将Active Directory用户名和密码传递给它时,以下代码会返回错误:
Transfer transfer = new Transfer(sourceDatabase);
transfer.DestinationServer = destinationConnection.ServerInstance;
transfer.DestinationDatabase = destinationConnection.DatabaseName;
transfer.DestinationLogin = serverCredentials.UserName;
transfer.DestinationPassword = serverCredentials.Password;
transfer.DestinationLoginSecure = false;
var stuffToDo = transfer.ScriptTransfer();
注意:我不能使用本机SQL Server登录,因为它们不属于我们当前的安全设计。
为了增加一些清晰度,数据库已配置为使用Active Directory身份验证,上面代码块中提到的用户名和密码用于Azure SQL数据库上的有效管理员帐户。当我尝试使用事件失败的Microsoft.SqlServer.Management.Smo.Transfer
对象时,我可以使用AD帐户连接字符串进行连接。