我正在尝试使用sp_execute_external_脚本在SQLServer2019中运行Python脚本。我希望使用受信任的连接来完成此操作,而不是提供SQL用户ID和密码
EXECUTE sp_execute_external_script
@language = N'Python'
,@script = N'
import pyodbc
conn = pyodbc.connect(''Driver={ODBC Driver 17 for SQL Server};''
''Server=MyServerName;''
''Database=MyDBName;''
''Trusted_Connection=yes;'')
cursor = conn.cursor()
cursor.execute(''SELECT 1 AS [Col1]'')
for row in cursor:
print(row)
'
然而,我得到了错误
pyodbc.interface错误:('28000',“[28000][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]用户'MyDomain\MyServerName$'(18456)(SQLDriverConnect)登录失败;[28000][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]用户'MyDomain\MyServerName$'(18456)”登录失败
…其中MyDomain是我的组织域的名称,MyServerName$是SQL Server的名称,后跟美元符号
看起来sp_execute_external_脚本正试图在某种类型的内部服务帐户下运行(?猜测,根本不是DBA)。我需要更改/配置什么以使脚本在我的凭据下运行
或者,需要为此服务(?)帐户设置什么以允许其运行脚本?我确实尝试过搜索这个帐户名,看看是否可以修改权限,但SQL正在回击消息“找不到具有以下名称的对象(用户或内置安全主体)”,因此我显然遗漏了一些内容
感谢您的指导
谢谢
编辑10/23:我知道对于这个简单的示例,我可以使用@input_data_1参数传入SQL查询,但我正在计划在脚本中使用多个SQL查询的场景。据我所知,不支持传入多个@input_data_x参数。因此,我认为我还需要在脚本中建立到本地数据库的连接
目前没有回答
相关问题 更多 >
编程相关推荐