Структура Azure Devops для выполнения запроса на Azure SQL предпочтительно через подписку

Существует богатый API для управления экземплярами, серверами и политиками безопасности Azure в справочнике по az sql и справочных командах Azure CLI для Azure SQL. Но как мы можем просто подключиться к существующей подписке [или, по крайней мере, к строке подключения] и запустить основные команды sql? Я не нашел альтернативного API или каких-либо методов в этих существующих API для этого. Можно ли переназначить один или несколько методов, ориентированных на администратора, для выполнения общих запросов/выполнения общих команд DML?

Предпочтительно использовать существующую подписку Azure в качестве основы для подключения. Таким образом, нам не нужно получать доступ к KeyVault для паролей сервера [и URI и т. д.].

Обратные кавычки предназначены для фрагментов кода/CLI, а не для выделения.

Daniel Mann 03.04.2023 21:36
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
1
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я пробую Sqlcmd и встрою его в задачу Bash@3. Обратите внимание, что он работает с macOS и Linux.

убунту:

apt install -y install SqlCmd
Sqlcmd -S our-server.database.windows.net -d ourdb -G

Обратите внимание, что здесь нет никаких паролей: -G означает использование ActiveDirectory за кулисами с учетными данными вошедшего в систему пользователя. Это также должно быть переведено в Azure.

Это вызывает приглашение T-sql. Затем можно вызвать нужный нам оператор вставки.

Обновление В ADO логин ActiveDirectory не найден автоматически. Мне нужно будет обновить этот подход с механизмами, чтобы включить его.

Конкретное сообщение об ошибке:

Failed to authenticate the user '' in Active Directory
(Authentication option is 'ActiveDirectoryIntegrated').
Running on Azure it does need login mechanics still:

commit;'

2023-04-04T08:34:50.8668817Z Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.

2023-04-04T08:34:50.8670276Z Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Failed to authenticate the user '' in Active Directory (Authentication option is 'ActiveDirectoryIntegrated').

2023-04-04T08:34:50.8671087Z Error code 0xA190; state 41360

2023-04-04T08:34:50.8671557Z Error acquiring Kerberos credentials

2023-04-04T08:34:50.8672027Z GSS status: No credentials were supplied, or the credentials were unavailable or inaccessible

2023-04-04T08:34:50.8672561Z Mechanism status: No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1001)

2023-04-04T08:34:50.8672954Z .

2023-04-04T08:34:50.8673556Z Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Timeout error [258]. .

2023-04-04T08:34:50.8676187Z Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Unable to complete login process due to delay in login response.

2023-04-04T08:34:50.8690776Z + script_out='OK
Ответ принят как подходящий

Рассмотрите возможность использования PowerShell Core и Invoke-Sqlcmd . Он поддерживает кроссплатформенность: Invoke-Sqlcmd теперь доступен с поддержкой кроссплатформенности . Посмотрите примеры подключения к Azure SQL: Подключитесь к базе данных Azure SQL . Вы можете поделиться результатами запроса с помощью команд ведения журнала: О task.setvariable

Настройте PowerShell@2 для использования PowerShell Core:

По умолчанию PowerShell v2 использует агенты PowerShell Core для Linux и Windows PowerShell для агентов Windows. Чтобы использовать последнюю версию PowerShell для агентов Windows установите для параметра pwsh значение true. Вместо этого будет использоваться PowerShell Core.

отличная информация! Я рад, что мой вопрос не был закрыт [по крайней мере], чтобы иметь возможность его прочитать! Не уверен, почему так много презрения к этому вопросу.

WestCoastProjects 04.04.2023 09:03

Другие вопросы по теме