通过Powershell连接到Azure (PaaS)
$sqlServer = "x.database.windows.net"
$sqlDB = "master"
$conn = new-object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=tcp:$($sqlServer),1433;Initial Catalog=$($sqlDB);Persist Security Info=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
$conn.AccessToken = $env:ACCESSTOKEN
$conn.Open()然后,我将看到一个错误:
Exception calling "Open" with "0" argument(s): "A connection was successfully established with the server, but then an
error occurred during the login process. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed
by the remote host.)"
At C:\Users\x\testcon2.ps1:6 char:1
+ $conn.Open()
+ ~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SqlException有人知道我怎么解决这个问题吗?
发布于 2021-09-07 12:25:47
我们需要通过运行命令来安装模块。
尝试通过运行Azure验证
连接-AzAccount
我们可以通过运行下面的命令找到数据库,如果返回要连接的数据库,则可以运行脚本。
获取-AzSqlServer -ResourceGroupName .
下面的PS脚本将建立连接并执行查询,并给出输出。
Import-Module Az.Sql -Force
$rgName = '<Resource Group Name>'
$sqlServer = Get-AzSqlServer -ResourceGroupName $rgName
$sqlDatabase = Get-AzSqlDatabase -ServerName $sqlServer.ServerName -ResourceGroupName $rgName
$Params = @{
'ServerInstance' = $sqlServer.FullyQualifiedDomainName;
'Database' = $sqlDatabase.DatabaseName[0];
'Username' = $sqlServer.SqlAdministratorLogin;
'Password' = ‘<Password>’;
'Query' = 'SQL Statement to access table'
}
Invoke-Sqlcmd @Params还请参阅微软文章有关使用Powershell的Azure SQL数据库身份验证。
此连接问题通常发生在在少数地点提供服务中,也是在AccessToken过期时。
https://stackoverflow.com/questions/69016773
复制相似问题