2017-05-25 167 views
0

我已经使用Windows身份验证和从用户接收的凭据编写了一个Windows服务,该服务连接到SQL Server(本例中为2014)。为了这样做,我使用模拟,特别是简单模拟nuget。Windows用户模拟无法登录到云上的SQL Server

在我的本地环境(Windows 10)和其他本地环境中,它似乎工作正常,但是一旦我尝试在Google云(Windows Server 2012 R2)中进行测试,我会为用户I试图模仿,这可能表明有一个问题,我无法找到密码。

我使用用于通过RDP连接到服务器的相同用户和密码。当使用SSMS连接到具有该用户的相同数据库时,Windows身份验证可以工作。

有没有人有任何想法是什么错?无论如何Windows身份验证是不同的云或Windows服务器上?

var sql = "select 1"; 

using (Impersonation.LogonUser(domain, userName, password, LogonType.Interactive))  
using(var con = new SqlConnection(connectionString)) 
{ 
    con.Open(); 
    var cmd = new SqlCommand(sql, con); 
    cmd.ExecuteNonQuery(); 
} 

感谢

回答

0

这完全是一个安全问题。由于不同的用户安装了数据库,因此我的用户没有创建登录,并且由于它位于云中,而不是我们的域,所以我也不是内置用户之一。显然,创建登录可以修复它。我觉得很蠢