Server 2017使用sp_execute_external_script ( Server机器学习)在数据库上下文中运行python脚本。python脚本需要从文件系统加载文件。所有东西(数据库和文件系统)都是本地的。错误跟踪:
Msg 39004,Niveau 16,tat 20,Ligne 1
Une de script,Python,s‘’est produite lors de l‘’exécution de sp_execute_external_script,avecHRESULT0x80004004。
Msg 39019,Niveau 16,tat 2,Ligne 1
这是最优秀的产品:
在执行中出错。有关更多信息,请查看输出。
回溯(最近一次调用):
文件"",第5行,在
文件"C:\PROGRA~1\MICROS~3\MSSQL1~2.MSS\MSSQL\EXTENS~1\MSSQLSERVER201701\B2E71FC7-8E08-4D86-8B82-38AD564DBC9D\sqlindb.py",第43行,在转换中
im = Image.open(adresse_image)文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\PIL\Image.py",第2410行,打开
fp = builtins.open(filename, "rb")'C:\Users\aubertl\Downloads\plage_corse_2.jpg‘:PermissionError: Errno 13权限被拒绝:
SqlSatelliteCall错误:执行中的错误。有关更多信息,请查看输出。
STDOUT provenant du script外部消息:
特快专递版将继续执行。
SqlSatelliteCall函数失败。有关更多信息,请参见控制台输出。
回溯(最近一次调用):
文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\revoscalepy\computecontext\RxInSqlServer.py",行406,在rx_sql_satellite_call中
rx_native_call("SqlSatelliteCall", params)文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\revoscalepy\RxSerializable.py",第291行,在rx_native_call中
ret = px_call(functionname, params)RuntimeError:恢复功能失败。
发布于 2019-06-15 23:45:27
默认情况下,python服务在"NT Service\MSSQLLaunchpad“下运行。文件位于"C:\Users\aubertl“文件夹中,默认情况下,MSSQLLaunchpad无法访问该文件夹。
我建议创建另一个目录,如C:\PytrhonScripts“,并将对该文件夹的读取权限授予MSSQLLaunchpad。
发布于 2020-01-15 17:34:11
来自授予所有应用程序包对文件文件夹的权限
备选案文1:互动
Properties。Security选项卡。Edit按钮。Add...添加ALL APPLICATION PACKAGES特权。Modify和/或Full Control以允许Read/Write进入此目录。还可以添加Everyone以防止任何进一步的问题。
选项2:命令行
改编自StackOverflow答案,在Administator命令提示符中运行以下命令:
icacls "X:\DataDir" /grant "ALL APPLICATION PACKAGES:(OI)(CI)F" /T发布于 2019-06-17 12:11:50
右键单击目录->,授予对->的访问权限,添加"everyone“。然后脚本运行并生成所需的输出。显然无法添加与服务一起运行的用户(NT Service\MSSQLLaunchpad),因此这是一个解决办法。
https://stackoverflow.com/questions/56611792
复制相似问题