Невозможно подключить базу данных SQL Azure из Python с помощью Key Vault Secret

Секрет моего хранилища ключей

integrated security=False;encrypt=True;connection timeout=30;data source=yyy.database.windows.net;initial catalog=db-xxxx;user id=xx-user;password=pwd-xx

Я могу подключиться к базе данных Azure SQL, используя указанный выше секрет KV из Azure ADF. Я пытаюсь сделать то же самое через код Python:

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
import pyodbc

KVUri = "https://yyy-kv.vault.azure.net/"

credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
secretName = "xxxx"
print("Retrieving your secret")
retrieved_secret = client.get_secret(secretName)
print(f"Your secret is '{retrieved_secret.value}'.")
print(" done.")
# The code fails after this.
with pyodbc.connect(retrieved_secret.value) as conn:
    with conn.cursor() as cursor:
        cursor.execute("SELECT TOP 3 name, collation_name FROM sys.databases")
        row = cursor.fetchone()
        while row:
            print (str(row[0]) + " " + str(row[1]))
            row = cursor.fetchone()

Но код не работает с ошибкой ниже:

Traceback (most recent call last):
  File "first.py", line 25, in <module>
    with pyodbc.connect(retrieved_secret.value) as conn:
pyodbc.InterfaceError: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

Можете ли вы помочь мне, какие изменения мне нужно сделать в KV, или Azure все еще не поддерживает Python KV? Спасибо.

См. также:  Gitlab, Permission denied (publickey), стабильная версия 6-4
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Madhanlal

    Строка подключения должна быть такой, как показано ниже.

    Driver={ODBC Driver 17 for SQL Server};Server=yy.database.windows.net,1433;Database=dbname;Uid=sasasa;Pwd={pwd};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;
    

    Я считаю, что если вы измените секрет в kv, вы сможете решить проблему.

    Официальный документ:

    Подключить SQL Server

    Спасибо, Джейсон. Мне известно о строке подключения. Я пытаюсь подключиться к Azure SQL с помощью секрета Azure Key Vault. person Madhanlal; 26.05.2021

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: