gpt4 book ai didi

python - 为什么我使用 Windows 身份验证通过 AzureML dataprep 登录 MS SQL 失败?

转载 作者:太空狗 更新时间:2023-10-29 17:49:09 25 4
gpt4 key购买 nike

我尝试使用 azureml.dataprep 连接到 MS SQL 数据库在 Azure Notebook 中,如 https://learn.microsoft.com/en-us/azure/machine-learning/service/how-to-load-data#load-sql-data 中所述,使用MSSqlDataSource ,使用以下形式的代码

import azureml.dataprep as dprep

secret = dprep.register_secret(value="[SECRET-PASSWORD]", id="[SECRET-ID]")

ds = dprep.MSSQLDataSource(server_name="[SERVER-NAME]",
database_name="[DATABASE-NAME], [PORT]",
user_name="[DATABASE-USERNAME]",
password=secret)

[DATABASE-USERNAME]设置为MYWINDOWSDOMAIN\\MYWINDOWSUSERNAME,并且密码[SECRET-PASSWORD]与我的Windows密码一致(即尝试使用 Windows 身份验证)。

使用

触发查询后
dataflow = dprep.read_sql(ds, "SELECT top 100 * FROM [dbo].[MYTABLE]")
dataflow.head(5)

我明白

ExecutionError: Login failed.

我可以在没有 Windows 身份验证的情况下连接到其他数据库。我做错了什么?

最佳答案

考虑使用SQL server authentication作为连接到该数据库的解决方法/替代解决方案(相同的数据流语法将起作用):

import azureml.dataprep as dprep
secret = dprep.register_secret(value="[SECRET-PASSWORD]", id="[SECRET-ID]")

ds = dprep.MSSQLDataSource(server_name="[SERVER-NAME],[PORT]",
database_name="[DATABASE-NAME]",
user_name="[DATABASE-USERNAME]",
password=secret)

请注意,dataprep 的使用已被弃用,sqlalchemy 可以用作替代方案

import pandas as pd
from sqlalchemy import create_engine

def mssql_engine(user = "[DATABASE-USERNAME]",
password = "[SECRET-PASSWORD]",
host = "[SERVER-NAME],[PORT]",
db = "[DATABASE-NAME]"):
engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{db}?driver=SQL+Server')
return engine

query = "SELECT ..."

df = pd.read_sql(query, mssql_engine())

关于python - 为什么我使用 Windows 身份验证通过 AzureML dataprep 登录 MS SQL 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54601987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com