首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据库+ Windows身份验证+用户名/密码?

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

Stack Overflow用户
提问于 2009-05-06 18:11:54
回答 6查看 82.9K关注 0票数 26

我一直认为,为了使用windows身份验证和显式指定的凭据连接到SQL server,您必须先LogonUser、模拟,然后再连接。

在我看来,this link建议可以轻松地连接到SQL server,只需指定"uid=...;pwd=...“在连接字符串中。我测试了这个方法,以确保它不起作用--瞧,看--它不起作用。如果那篇博客文章不是在msdn.com上,我会把它当作菜鸟谈话而不屑一顾,但它确实起作用了。

有人知道我错过了什么吗?

EDIT1:许多受访者误解了我指的是什么。这是我所说的内容的一个拷贝/粘贴。它既不是集成的SQL,也不是IIS制作的ASP.NET模拟:

代码语言:javascript
复制
string sql4 = String.Format(
   @"Data Source={0};Integrated Security=SSPI;uid=<uid>;pwd=<pid>", server);     
// Database + Windows Authentication + Username/Password
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-06 22:35:24

SQL Server有两种截然不同的安全性。"Windows身份验证“和"SQL Server身份验证”。当您看到uid和pwd时,您看到的是后者。本例中的uid不是Windows主体-操作系统对此一无所知。

因此,您的问题的答案是,没有,您不能在连接字符串中传递Windows用户名和密码来登录SQL Server。

票数 38
EN

Stack Overflow用户

发布于 2009-05-06 18:16:14

这取决于-如果你从命令行或Winforms应用程序直接连接到你的SQL Server,你要么指定“集成Security=SSPI;”,然后使用你的Windows凭据作为登录凭据,或者你指定“UserSQL.....”-但那是id=....;pwd=登录-而不是你的Windows登录。

你提到“模拟然后连接”--这似乎表明了ASP.NET --这又是一个完全不同的故事。如果你模拟,那么你基本上是在使用你的Windows凭据,例如,web服务器将“模拟”你并以你的身份登录(使用你的Windows凭据)。在这种情况下,再一次,没有"uid=....;pwd=.....“需要指定(如果是,它将被忽略)。

正如您提到的链接清楚地显示的那样-如果您可以直接连接,并且您指定了“集成Security=SSPI;",那么它将优先于任何uid=...;pwd=……你也可以指定并使用你的Windows凭证登录;那些额外的uid=...;pwd=...片断将被忽略。

Marc

票数 5
EN

Stack Overflow用户

发布于 2009-05-06 19:18:23

本文讨论的是SQL安全性,而不是集成安全性。如果启用了SQL身份验证(混合模式),则可以传递SQL用户的凭据并以此方式登录。如果将SQL服务器设置为仅使用集成安全性,则这将不起作用。允许使用Windows登录凭据登录也不起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/830929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档