2

我正在尝试在SQL Server 2008上使用EF 5 Code First创建数据库。我可以使用集成安全性创建数据库,但我无法使用自定义用户创建数据库。该代码在我的家用机器上运行初始化程序,用于集成安全性和自定义用户。实体框架代码第一权限/数据库创建问题

连接字符串的区别如下。除此之外,我还根据connectionstrings.com将数据源更改为服务器,并将初始目录更改为数据库。

<!--<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MVCTesting;Integrated Security=False;User Id=Green;Password=******" providerName="System.Data.SqlClient" />--> 
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MVCTesting;Integrated Security=True;" providerName="System.Data.SqlClient" /> 

我比较了SQL用户MachineName/LoginName和Green。他们都具有public和sysadmin的服务器角色,在创建数据库之前都没有任何用户映射,因此他们映射到该数据库。

在的global.asax.cs我

protected void Application_Start() 
    { 
     Database.SetInitializer(new MVCTestingInitializer()); 
     //Database.SetInitializer(new DropCreateDatabaseAlways<MVCTestingContext>()); 
     ViewDb(); 

     //Other setup 
    } 

    //Init the db by looking up a contact 
    private void ViewDb() 
    { 
     using (var context = new MVCTestingContext()) 
     { 
      var user = context.Contacts.Where(u => u.FirstName.StartsWith("T")); 

      var asdf = ""; 
     } 
    } 

我的初始化是...

public class MVCTestingInitializer : DropCreateDatabaseAlways<MVCTestingContext> 
    { 
     protected override sealed void Seed(MVCTestingContext context) 
     { 
      //Code to init the db 
     } 
    } 

使用NLog我能当种子运行或不进行验证。当我整合安全性运行时,当我没有种子不运行时。

我也在机器上创建了一个帐户,将该帐户添加到AppPool和SQL Server,然后重新测试。我仍然看不到连接。

System.Data.SqlClient.SqlException: Login failed for user 'Green'. 

在疯狂的情况下,我决定将所有可能的权限添加到用户'绿色',我仍然看到上述错误。有人看到我失踪了吗?我确信它非常简单,之后我会把自己的脑袋砸在脑后,但我只是看不到它。

如果我真的很遥远,请提供步骤来创建一个SQL帐户/权限,我可以使用我的网络配置,并请包括应用程序池设置。

感谢, TJ

+1

首先,你可以连接到数据库使用ssms和登录绿色?你有 ;密码后?你尝试去除IntegratedSecurity = false? – 2013-04-30 20:54:00

+1

@Mariusz - 感谢您的意见。我是对的,打耳光了。使用SSMS登录失败。登录失败是由于仅在Win Auth模式下设置数据库。将其更改为混合模式可解决问题。 – JabberwockyDecompiler 2013-04-30 22:28:10

回答

2

我将发布它的答案:)

如果你有问题,连接到数据库,打开SSMS并使用相同的凭据登录到数据库。这将确认你有正确的凭据;)

相关问题