我一直在努力安装 DevOpsServer 2019-RC1 以查看我的 Azure SQL Server
按照建议,我的 DevOpsServer 安装在 Azure VM 上
我已经实现了以下文档中有关为 VM 设置 MSI 并通过 AAD 身份验证授予 MSI 访问 Azure SQL 的所有内容:
我还添加了 VM NIC 所在的 VNET,作为 Azure SQL Server 上的 VNET 防火墙规则,以确保没有连接问题
我的 DevOpsServer 拒绝查看 Azure SQL Server 或其数据库
为了确认 Azure SQL 没有被 VM 阻止,我在 VM 上成功创建了一个 ODBC 系统 DSN 连接,它允许我查看 Azure SQL Server 及其数据库
根据参考文档:
- 在设置新的 DevOps Server 实例时,我选择了“这是一个新的 Azure DevOps Server 部署”
- 在配置向导的“数据库”页面上,指定 Azure SQL 数据库服务器实例,通常采用“SQLInstanceName.database.windows.net”的形式
请让我知道我是否可以做任何其他事情来帮助 Devops 服务器配置向导查看我的 Azure SQL Server 和数据库
PS如果这改变了能力,我试图让它在Azure政府(MAG)中工作......
尝试通过以下 Powershell 脚本以编程方式连接到 SQL 数据库时收到错误:
# Retrieve the access token
$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatabase.usgovcloudapi.net' -Method GET -Headers @{Metadata="true"}
$content = $response.Content | ConvertFrom-Json
$AccessToken = $content.access_token
# Create the connection
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source = test-sqlsrv.database.usgovcloudapi.net; Initial Catalog = inldb"
$SqlConnection.AccessToken = $AccessToken
$SqlConnection.Open()
# Send a Query
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "SELECT * from <TABLE>;"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)