一尘不染

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

sql

我正在尝试在同一网络上的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服务打开连接。


阅读 127

收藏
2021-03-17

共1个答案

一尘不染

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

您必须将Web服务配置为以您的域身份运行。

如果您将Web服务托管在IIS中,则可以通过模拟来实现。这是一个例子:

<configuration>
    <system.web>
        <identity
            impersonate="true"
            userName="ROMANIA\username" 
            password="********" />
    </system.web>
</configuration>
2021-03-17