gpt4 book ai didi

azure - Powershell - 使用 Connect-AzAccount(使用 MFA)连接到 SQL Server

转载 作者:行者123 更新时间:2023-12-03 06:44:21 25 4
gpt4 key购买 nike

我们设置了一个 SQL Server(由我创建,我的帐户作为管理员帐户),并且使用 Management Studio,我可以很好地访问数据库。我现在正在尝试通过 Powershell 实现同样的目标。我使用以下方法创建了自己的用户:

CREATE USER [<my ccount>] FROM EXTERNAL PROVIDER

我首先使用 MFA 进行连接(并使用弹出窗口/MFA 进行登录):

Connect-AzAccount -SubscriptionId $subscriptionID

这工作正常,并返回指定订阅的预期值以及我的 Azure AD 登录帐户。我可以访问我的 KeyVault 并从那里获取 secret 。

我现在想使用我在 PowerShell session 中登录的凭据连接到我的 SQL Server,这就是我陷入困境的地方。

我尝试了一个 ConnectionString,包括 Authentication=Active Directory Integrated ,但这会引发错误 Exception calling "Open" with "0" argument(s): "One or more errors occurred." .

然后我尝试使用这样的连接字符串:Server=tcp:<server>.database.windows.net,1433;Initial Catalog=<database>;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30 ,并使用 SqlConn.AccessToken = $(Get-AzAccessToken -ResourceUrl "Https://database.windows.net/") 添加 AccessToken .

但是,当我尝试打开连接时,出现错误:"Login failed for user '<token-identified principal>'."

谷歌搜索找到了几篇 SO 文章,但没有一篇使用 Connect-AzAccount,而是使用(我认为已经过时的)Az 帐户(即 Connecting to SQL Server using Powershell with Azure AD MFA )。

我发现的其他例子都添加UIDPassword ,考虑到我已经通过了身份验证,这应该是不需要的。

有没有办法使用现有的 Connect-AzAccount session 对我的 Azure SQL Server 进行身份验证?如果可以,ConnectionString 应采用什么格式?我有一种感觉,我非常接近解决方案,但似乎无法真正实现连接的打开。

提前致谢。

最佳答案

读了越来越多后,我终于偶然发现了this thread 。 @golfalot 的答案正是我所需要的。

因此初始化连接的正确代码是:

# Sign in to Azure
Connect-AzAccount -SubscriptionID $subscriptionID

$connectionString = "Server=<server>.database.windows.net;Initial Catalog=<database>;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30"

$accessToken = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token

$sqlConn = New-Object System.Data.SqlClient.SqlConnection
$sqlConn.ConnectionString = $connectionString
$sqlConn.AccessToken = $accessToken
$sqlConn.Open()

关于azure - Powershell - 使用 Connect-AzAccount(使用 MFA)连接到 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74247674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com