相关疑难解决方法(0)

数据库+ Windows身份验证+用户名/密码?

我一直认为,为了使用具有显式指定凭据的Windows身份验证连接到SQL服务器,您必须使用LogonUser,Impersonate,然后连接.

在我看来,这个链接表明,只需在连接字符串中指定"uid = ...; pwd = ..."就可以连接到SQL服务器而不需要这么麻烦.我测试了这种方法只是为了确保它不起作用,而且 - 看哪 - 它没有.如果那个博客文章不在msdn.com上,我会把它当作noob talk解雇,但确实如此.

有谁知道我错过了什么?

编辑1:许多受访者误解了我的意思.这是我所说的复制/粘贴.它不是集成的SQL,也不是由IIS制作的ASP.NET模拟:

string sql4 = String.Format(
   @"Data Source={0};Integrated Security=SSPI;uid=<uid>;pwd=<pid>", server);     
// Database + Windows Authentication + Username/Password
Run Code Online (Sandbox Code Playgroud)

sql-server authentication windows-authentication

22
推荐指数
2
解决办法
7万
查看次数

R - 手动RODBC Windows身份验证

使用RODBC连接到Microsoft SQL Server时,我知道我可以执行以下操作:

con <- odbcDriverConnect(connection="driver={SQL Server};server=servername;database=dbname;trusted_connection=yes;")
Run Code Online (Sandbox Code Playgroud)

但是,这限制了我对当前Windows用户名使用Windows身份验证.我们的流程通常需要为不同的流程使用不同的登录凭据.如果我需要使用Windows身份验证使用不同的登录凭据,有没有办法手动执行此操作?例如,以下内容对我失败.

con <- odbcDriverConnect(connection="driver={SQL Server};server=servername;database=dbname;uid=domain\\username;pwd=passwd;")
Run Code Online (Sandbox Code Playgroud)

我以为我可以使用该格式,domain\\username但它永远不会工作,我只是不断收到这样的错误:

警告消息:1:在odbcDriverConnect(connection ="driver = {SQL Server}; server = servername; database = dbname; uid = domain\username; pwd = passwd"):[RODBC] ERROR:状态28000,代码18456,消息[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]用户'domain\username'登录失败

我担心的是,根据我在这个问题中找到的答案,这是不可能的.

这是相当令人沮丧的,因为如果我使用RSQLServer,我可以使用任意用户.

con <- dbConnect(RSQLServer::SQLServer(), "servername", database = "dbname",
                    properties = list(user = "username", password = "passwd",
                                      useNTLMv2=TRUE, domain = "domain")
                    )
Run Code Online (Sandbox Code Playgroud)

我更喜欢RODBC在这种情况下使用,因为很多以前编写的代码依赖于RODBC特定的功能(例如sqlQuery)而不是DBI函数.

odbc r rodbc

5
推荐指数
0
解决办法
5855
查看次数