所有文档和帮助线程我都可以找到 Authentication=ActiveDirectoryIntegrated 的参考连接字符串,以通过 AAD 集成来访问 SQL。如果我使用的是 SSMS,我还可以选择“Active Directory Universal”,如果需要 MultiFactorAuth (MFA),它会给出提示。
我想使用 powershell 来调用-sqlcmd,甚至直接调用 sqlcmd.exe - 是否支持 MFA 流?我还能如何获取针对启用了 AAD 且启用了 MFA 的 SQLAzure 实例的命令行查询?
invoke-sqlcmd : Failed to authenticate the user NT Authority\Anonymous Logon in Active Directory
(Authentication=ActiveDirectoryIntegrated).
Error code 0xCAA2000C; state 10
AADSTS50079: The user is required to use multi-factor authentication.
Trace ID: 54f0cb31-2f0f-4137-b142-b312a6cd441b
Correlation ID: 70204904-576c-4db5-9c3b-6ccd7fe6b409
Timestamp: 2017-02-09 22:56:39Z
我已经看过https://docs.microsoft.com/en-us/azure/sql-database/sql-database-aad-authentication,并且在应用 MFA 或当它意识到之前一切正常是时候重新认证和提示了。
如果有办法让我缓存凭据,那么 ActiveDirectoryIntegrated 通常可以工作,我只需要在它决定是时候强制执行 MFA 提示时重新验证和重新缓存,我也对此持开放态度。