【发布时间】:2020-10-08 11:37:00
【问题描述】:
我已经使用 pyodbc 中的AccessToken 成功连接了 Azure SQL Server。这里我没有使用username或password连接数据库。取而代之的是,我使用attrs_before 传递token。这里我自动生成令牌。
令牌生成:
identity_endpoint = os.environ["IDENTITY_ENDPOINT"]
identity_header = os.environ["IDENTITY_HEADER"]
def get_bearer_token(resource_uri): #Automattically token will generate
token_auth_uri = f"{identity_endpoint}?resource={resource_uri}&api-version=2019-08-01"
head_msi = {'X-IDENTITY-HEADER': identity_header}
resp = requests.get(token_auth_uri, headers=head_msi)
access_token = resp.json()['access_token']
return access_token
Pyodbc 连接:
accessToken = bytes(get_bearer_token("https://database.windows.net/"), 'utf-8');
exptoken = b"";
for i in accessToken:
exptoken += bytes({i});
exptoken += bytes(1);
tokenstruct = struct.pack("=i", len(exptoken)) + exptoken;
conn = pyodbc.connect(
"Driver={ODBC Driver 17 for SQL Server};Server=yoursqlserver.database.windows.net,1433;Database=dbName",
attrs_before={1256: bytearray(tokenstruct)});
现在的问题是如何在 Django 框架中使用这个来连接数据库?使用 azure token 时,我们无法使用 username 或 password 连接数据库。
请帮帮我。
【问题讨论】:
-
哪个 OS django prod 和 dev 将是?
-
Linux环境
-
我也遇到了同样的问题,你找到解决办法了吗?
标签: python django azure-sql-database