为什么使用Windows身份验证登录使用AzureML dataprep的MS SQL失败?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么使用Windows身份验证登录使用AzureML dataprep的MS SQL失败?相关的知识,希望对你有一定的参考价值。
我尝试在Azure笔记本中使用azureml.dataprep
连接到MS SQL数据库,如https://docs.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:登录失败。
我可以连接到没有Windows身份验证的其他数据库。我究竟做错了什么?
考虑使用SQL server authentication作为解决方案/替代解决方案来连接到该数据库(相同的dataflow
语法将起作用):
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)
Here is the MS Doc on MSSQLDataSource
。 MSSQLDataSource
实例有一个属性,credentials_type
默认为SERVER
。在进行查询之前,请尝试将其明确设置为WINDOWS
。此外,应将端口与服务器名称一起指定。
import azureml.dataprep as dprep
windows_domain = 'localhost'
windows_user = 'my_user'
windows_password = 'my_password'
secret = dprep.register_secret(value=windows_password, id="password")
ds = dprep.MSSQLDataSource(server_name="localhost",
database_name="myDb",
user_name=f'windows_domain\windows_user',
password=secret)
ds.credentials_type = dprep.DatabaseAuthType.WINDOWS
dataflow = dprep.read_sql(ds, "SELECT top 100 * FROM [dbo].[MYTABLE]")
dataflow.head(5)
以上是关于为什么使用Windows身份验证登录使用AzureML dataprep的MS SQL失败?的主要内容,如果未能解决你的问题,请参考以下文章
Windows Azure Active Directory 承载身份验证
在 Azure 应用服务身份验证与身份验证(经典)中重定向以使用 AAD 登录
用于 Azure 移动服务 (REST) 的 Live Connect 身份验证令牌
[Azure - Security] Azure的多重身份验证:使用AD(Azure Active Directory)开启用户MFA