使用MFA(Active Directory Interactive)通过PowerShell对SQL Server进行



我正在尝试设置PowerShell脚本,以便在我们的Azure SQL Server数据库上启用"始终加密"。我遵循本指南,其中提供了以下示例代码:

# Import the SqlServer module
Import-Module "SqlServer"  
# Connect to your database
# Set the valid server name, database name and authentication keywords in the connection string
$serverName = "<Azure SQL server name>.database.windows.net"
$databaseName = "<database name>"
$connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Authentication = Active Directory Integrated"
$database = Get-SqlDatabase -ConnectionString $connStr
# List column master keys for the specified database.
Get-SqlColumnMasterKey -InputObject $database

然而,我在使数据库连接正常工作时遇到了问题。看起来,所使用的SqlServer模块中的Get-SqlDatabase命令似乎不支持通过MFA登录。我们公司已经强制执行了这种类型的登录,所以我似乎找不到解决这个问题的方法。

运行Get-SqlDatabase -ConnectionString 'Server=myserver.database.windows.net; Database=myDB; Authentication=Active Directory Interactive;'时,我收到以下错误:

找不到"ActiveDirectoryInteractive"的身份验证提供程序。

SqlServer模块是否缺乏支持MFA登录的能力?还是我错过了什么?

Get-SqlDatabaseCmdlet使用System.Data.SqlClient,其中根据以下文档,验证关键字中支持值。

有效值为:

  • Active Directory集成
  • Active Directory密码
  • Sql密码

Active Directory集成:若要使用此身份验证模式,您需要将本地Active Directory联合身份验证服务(ADFS(与云中的Azure Active Directory联合

Active Directory密码:authentication=ActiveDirectoryPassword可用于使用Azure AD用户名和密码连接到Azure SQL数据库/Synapse Analytics。

Sql密码:Use authentication=SqlPassword使用用户名/用户和密码属性连接到Sql Server。

如果您想使用MFA通过PowerShell对Sql Server进行身份验证,则需要在身份验证关键字中使用Active Directory Interactive,而system.data.sqlclient不支持该关键字

Active Directory Interactive:authentication=ActiveDirectoryInteractive可用于使用交互式身份验证流(多因素身份验证(连接到Azure SQL数据库/Synapse Analytics

请注意,System.Data.SqlClient驱动程序以及Get-SqlDatabase cmdlet不支持所有Azure AD身份验证方法。如果支持的方法在您的环境中都不起作用,那么使用SQL身份验证可能是唯一的选择。

相关内容

  • 没有找到相关文章

最新更新