【发布时间】:2020-06-30 06:35:17
【问题描述】:
我有一个 SQL Server 数据库,我可以通过 MS Studio 连接到我的用户和这个密码:“testspecialcharacters_¤”,没有问题。我们正在使用 windows 身份验证连接到服务器。
但是我无法通过我的 R Shiny 应用程序连接到它。我无法给出确切的服务器、数据库和用户名,但这与我使用的代码非常接近:
library(RODBCext)
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD=testspecialcharacters_¤")
data <- sqlQuery(ch,"select * from test_db.general.test_tbl")
我收到以下错误:
[RODBC] ERROR: state 42000, code 18452, message [unixODBC][FreeTDS][SQL Server]Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.
[RODBC] ERROR: state 08001, code 0, message [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
ODBC connection failed
我必须提到,相同的代码适用于没有该特殊字符的密码。根据经验,我们发现“-”和“!”似乎工作。但是“@”和“¤”不起作用。我们没有尝试所有可能的特殊字符,只有这几个。
根据网上的其他帖子,我尝试了以下方法,但没有成功:
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD=testspecialcharacters_¤", DBMSencoding = "UTF-8")
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD=testspecialcharacters_¤", DBMSencoding = "UTF-8-BOM")
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD=testspecialcharacters_¤", DBMSencoding = "latin1")
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD={testspecialcharacters_¤}")
ch <- odbcDriverConnect("DSN=test;database=test_db;UID=test_user;PWD='testspecialcharacters_¤'")
我正在使用带有 UTF-8 默认编码的 RStudio Pro。
有人知道如何转义密码字符串中使用的特殊字符吗?或者,如果需要其他方式连接到数据库。
【问题讨论】: