SQL集成安全性使用计算机名称而不是用户名

Mar*_*scu 20 .net sql authentication connection-string

我正在尝试在同一网络上的SQL Express实例,与我的域用户进行身份验证.它可以在SSMS中使用Windows身份验证.我确认我可以使用MyDB数据库,包括编辑表格.

但是,当我尝试以下连接字符串时:

Server=ipaddress\SQLExpress; Database=MyDB; Integrated Security=SSPI;

我收到了一个错误:

Cannot open database "MyDB" requested by the login. The login failed. Login failed for user 'ROMANIA\MONSTER2$'

问题是MONSTER2是我的计算机的名称,而不是我的用户名.(ROMANIA是域名.)我做错了什么?

[编辑]我忘记了可能相关的内容:我正在尝试从计算机上运行的Web服务打开连接.

Enr*_*lio 18

您的Web服务在NT AUTHORITY\Network Service安全上下文中运行.这将导致进程在访问域中的网络资源时使用主机的计算机帐户.

您必须将Web服务配置为使用您的域标识运行.

如果您在IIS中托管Web服务,则可以通过模拟来执行此操作.这是一个例子:

<configuration>
    <system.web>
        <identity
            impersonate="true"
            userName="ROMANIA\username" 
            password="********" />
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)


Raj*_*ore 13

这是因为您的Web服务器未设置为使用使用该服务的人员的身份,而是使用其运行的计算机的身份.

检查Web服务的web.config是否包含: <authentication mode="Windows" />

  • 咄!你是对的.为了记录,我必须转到IIS并更改应用程序池(在高级设置中)以使用我的身份而不是默认的ApplicationPoolIdentity.我会在9分钟内接受答案:) (6认同)