首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法与Azure DevOps Server 2019一起使用Azure SQL - (Azure Government)

无法与Azure DevOps Server 2019一起使用Azure SQL - (Azure Government)
EN

Stack Overflow用户
提问于 2018-12-20 03:11:40
回答 5查看 1.3K关注 0票数 3

我一直在努力让我的DevOpsServer 2019-RC1安装来查看我的Azure

我的DevOpsServer安装在Azure上,如建议的那样

我已经实现了以下文档中有关为VM设置MSI以及通过AAD身份验证授予MSI访问Azure SQL的所有内容:

我还添加了VM所在的VNET,作为Azure SQL Server上的VNET防火墙规则,以确保没有连接问题

我的DevOpsServer拒绝查看Azure Server或其数据库

为了确认Azure SQL没有从VM中阻塞,我在VM上成功地创建了ODBC连接,它允许我查看Azure Server及其数据库

参考文档的

  • 在设置新的DevOps服务器实例时,我选择了“--这是一个新的DevOps服务器部署
  • 在配置向导的数据库页上,指定Azure实例,通常以"SQLInstanceName.database.windows.net“的形式

请告诉我,如果我还可以帮助Devops服务器配置向导查看我的Azure SQL Server和数据库

如果这改变了我的能力,我想让这个在Azure政府(MAG)工作.

试图通过以下Powershell脚本以编程方式连接到SQL时收到的错误:

代码语言:javascript
复制
# 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)

EN

回答 5

Stack Overflow用户

发布于 2018-12-21 16:59:48

尝试从集合和配置DB运行ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo。我有一个公关添加到文档中,这可能会导致您的问题。

票数 2
EN

Stack Overflow用户

发布于 2019-01-02 20:52:18

尝试通过Powershell而不是Azure DevOps服务器连接到SQL实例。

您可以运行以下脚本来执行此操作:

代码语言:javascript
复制
# 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.windows.net%2F' -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 = <AZURE-SQL-SERVERNAME>; Initial Catalog = <DATABASE>"
$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)

这至少会给您一个更多的描述性错误来调试。

票数 0
EN

Stack Overflow用户

发布于 2019-01-07 20:13:31

Gvazzana,我还建议使用提供的脚本danwkennedy进行测试,但是一定要将database.windows.net更改为database.usgovcloudapi.net for Azure Government。

我将密切注意有关获取访问令牌的任何错误以及与打开SQL连接相关的错误。

如果没有什么特别之处,能捕捉到Fiddler的踪迹吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53861936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档