sql-server - 在 MSSQL 中使用 sp_execute_external_script 执行 R 脚本
问题描述
我正在尝试在 MSSQL 中使用 sp_execute_external_script 执行外部 R 文件:
EXECUTE sp_execute_external_script @language = N'R'
, @script = N'
source("C:/Rscripts/script.R");';
我收到以下错误(已翻译):
External script error:
Error in file(filename, "r", encoding = encoding) :
could not open connection
Calling: source -> withVisible -> eval -> eval -> source -> file
Additional warning:
In file(filename, "r", encoding = encoding) :
Could not open file 'C:/Rscripts/script.R': Permission denied
这可以概括为文件权限错误。
我尝试了以下方法:
- 为执行 sql 脚本的用户分配多个服务器角色
- 将文件夹和脚本文件的完全访问权限分配给用户“MSSQLLaunchpad”和组“SQLRUserGroup”
但没有成功。
*.R 文件包含有效的 R 脚本,可以使用 RStudio 中 SQL 查询中的脚本执行。
我们需要打开一个外部 R 文件,因为过程 sp_execute_external_script 只需要一个 varchar(max) @script 参数。
解决方案
要使用 sp_execute_external_script 从/向文件夹读取/写入,请将权限分配给“ ALL APPLICATION PACKAGES ”
要访问其他机器/外部资源,请检查(并禁用)几个“SQLServer 中的 AppContainers-nn”的阻止传出防火墙规则。
推荐阅读
- sql-server - 报表生成器 - 截至第二个日期参数的字段数据不是第一个
- python - 如何从python中的.b64文件转换base64?
- reactjs - 如何重载材料切换组件css
- java - 使用 Socket 时服务器返回的不明符号
- regex - 正则表达式语法仅匹配第一段
- flutter - BlocBuilder 没有更新状态变化
- javascript - 无法在 Node JS 中设置 Cookie - React
- angular - Angular 8 Jasmine 间谍和不同类型的 returnValue
- javafx - RichTextFX,部分文档内容只读
- python - 一次更改所有子图的线型