如何从 Rstudio Connect 连接 SAP Hana。 R 闪亮
Posted
技术标签:
【中文标题】如何从 Rstudio Connect 连接 SAP Hana。 R 闪亮【英文标题】:How to connect SAP Hana from RstudioConnect. Rshiny 【发布时间】:2020-09-07 04:45:39 【问题描述】:警告:.jcall 中的错误:com.sap.db.jdbc.exceptions.SQLInvalidAuthorizationSpecExceptionSapDB:[10]:身份验证失败
已经尝试过以下不起作用的解决方案-
第一个解决方案
username <- input$username2
password <- input$password2
sso_url <- 'https://sso.company_Name.com/app/company_Name_phnhdb_1/exk9yg60ufqxqAX5G1t7/sso/saml'
okta_url <- 'https://company_Name.okta.com'
jdbc_uri <- 'jdbc:sap://phnhdb.dx.xyz.com:30015'
jar_location <- './lib/ngdbc-2.4.56.jar'
auth_response <- POST(paste(okta_url, 'api/v1/authn', sep='/'),body = toJSON(list(username = username, password = password)),add_headers(.headers = c("Content-Type" = "application/json", "Accept"="application/json")))
token <- fromJSON(content(auth_response, "text"))['sessionToken']
session_response <- POST(paste(okta_url, 'api/v1/sessions', sep='/'),body = toJSON(token),add_headers(.headers = c("Content-Type" = "application/json", "Accept"="application/json")), verbose())
cookie <- fromJSON(content(session_response, "text"))["id"]
saml_response <- read_html(GET(sso_url, add_headers(.headers = c("Cookie" = paste("sid", cookie, sep='=')))))
inputP <- saml_response %>% html_nodes("input") %>% xml_attr("value")
saml_assertion <- rawToChar(base64decode(inputP[1]))
jdbcDriver <- JDBC(driverClass="com.sap.db.jdbc.Driver", classPath="./lib/ngdbc-2.4.56.jar")
conn <- dbConnect(jdbcDriver, jdbc_uri, '', saml_assertion)
query<- paste0("select * from tablename limit 1000)
Data<- dbGetQuery(conn, query)
返回高于错误
通过 DSN 的第二个解决方案
conn<- dbConnect(odbc::odbc(), "HODBC")
# HODBC is the DSN from windows x64 bit
返回高于错误
会话信息
sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] readr_1.3.1 htmltools_0.5.0 shinyWidgets_0.5.3 shinyjs_1.1 shinycssloaders_1.0.0
[6] shinydashboard_0.7.1 waiter_0.1.2 base64enc_0.1-3 rvest_0.3.6 xml2_1.3.2
[11] rjson_0.2.20 httr_1.4.2 stringr_1.4.0 shinyalert_1.1 ape_5.4-1
[16] sunburstR_2.1.4 highcharter_0.8.2 purrr_0.3.4 cluster_2.1.0 igraph_1.2.5
[21] factoextra_1.0.7 RJDBC_0.2-8 rJava_0.9-12 DBI_1.1.0 plotly_4.9.2.1
[26] ggplot2_3.3.2 ibmdbR_1.50.0 arules_1.6-6 Matrix_1.2-18 odbc_1.2.2
[31] RODBC_1.3-16 readxl_1.3.1 DT_0.15 data.table_1.13.0 dplyr_1.0.2
[36] bs4Dash_0.5.0 shiny_1.5.0
loaded via a namespace (and not attached):
[1] nlme_3.1-144 xts_0.12-0 lubridate_1.7.9 bit64_4.0.2 tools_3.6.3 backports_1.1.7 utf8_1.1.4
[8] R6_2.4.1 rpart_4.1-15 lazyeval_0.2.2 colorspace_1.4-1 withr_2.2.0 tidyselect_1.1.0 bit_4.0.4
[15] curl_4.3 compiler_3.6.3 cli_2.0.2 labeling_0.3 scales_1.1.1 askpass_1.1 digest_0.6.25
[22] pkgconfig_2.0.3 fastmap_1.0.1 htmlwidgets_1.5.1 rlang_0.4.7 TTR_0.24.0 rstudioapi_0.11 quantmod_0.4.17
[29] farver_2.0.3 generics_0.0.2 zoo_1.8-8 jsonlite_1.7.0 crosstalk_1.1.0.1 magrittr_1.5 rlist_0.4.6.1
[36] Rcpp_1.0.5 munsell_0.5.0 fansi_0.4.1 lifecycle_0.2.0 stringi_1.4.6 yaml_2.2.1 MASS_7.3-51.5
[43] grid_3.6.3 blob_1.2.1 parallel_3.6.3 promises_1.1.1 ggrepel_0.8.2 crayon_1.3.4 lattice_0.20-38
[50] hms_0.5.3 pillar_1.4.6 glue_1.4.1 packrat_0.5.0 rpart.plot_3.0.8 vctrs_0.3.2 httpuv_1.5.4
[57] cellranger_1.1.0 gtable_0.3.0 openssl_1.4.2 tidyr_1.1.1 assertthat_0.2.1 mime_0.9 xtable_1.8-4
[64] broom_0.7.0 later_1.1.0.1 rsconnect_0.8.16 viridisLite_0.3.0 tibble_3.0.3 ellipsis_0.3.1
如果有任何解决方案,请告诉我,我尝试了各种互联网,但无法从 Rstudio 连接 SAP HANA
【问题讨论】:
【参考方案1】:没有合适的方法可以从 RStudio 连接 SAP HANA 连接,您应该在本地运行它或者您可以将数据转换为 Excel 在 RSConnect 上执行时工作表并将其作为输入
【讨论】:
是的,我也是这样,谢谢回答【参考方案2】:您需要在 R 和 SAP HANA 之间建立连接,因此 shiny
和 Connect 在这里实际上不起作用。
似乎 SAP 的某个人在 Connecting R Studio to SAP HANA via JDBC 上写了一篇博客文章如何实现这一点。该答案建议使用jdbc
作为连接器。
但根据HANA meets R,似乎也可以使用odbc
驱动程序
一般来说,配置odbc
可能比配置jdbc
更容易,所以我建议您执行以下操作:
https://db.rstudio.com/ 的页面 Setting up ODBC Drivers 在这里可能会有所帮助。虽然没有具体提及 SAP HANA,但原则应该是相似的,希望对您有所帮助。
【讨论】:
是的,我可以通过它进行连接,但是每当我将它部署在 Rstudio Connect 上时,它都会返回上述错误。这就是我的观点。本地一切运行良好,但在 Rstudio Connect 上却失败了。这就是我提出这个问题的原因。那么您能否在 Rstudio Connect 服务器上测试 odbc。如果它运行,那么请指导我。以上是关于如何从 Rstudio Connect 连接 SAP Hana。 R 闪亮的主要内容,如果未能解决你的问题,请参考以下文章
RStudio 和 SVN:如何提示连接细节以及如何避免硬编码?
将Rstudio与PostgreSQL在AWS EC2中连接
ubuntu18.04 Rstudio-server无法连接服务器