bernie2436
bernie2436

Reputation: 23921

asp mvc 3 noobie: CREATE DATABASE permission denied in database 'master'

I'm an asp mvc 3 noobie. I've done a few tutorials and am now ready to keep learning by trying to build a site.

In all the tutorials, you connect to a SQL CE or SQL Express DB. But I want my site to build a DB on sql server.

I created a database on my networked server that I'll call MyDB. Then I set my connection string in my web config file like this:

add name="ApplicationServices"
    connectionString="Data Source=Server\ServerInstance;Initial Catalog=MyDB;Integrated Security=True"
    providerName="System.Data.SqlClient"

I created models and a scaffolding controller.

I created a simple DataBaseContext like this:

Imports System.Data.Entity

Public Class DatabaseContext
    Inherits DbContext

    Public Property Employee As DbSet(Of Employee)
    Public Property AnnualLeave As DbSet(Of AnnualLeave)

End Class

But when I hit the following line in the scaffolding controller, i get the error:

 Function Index() As ViewResult
    Return View(db.Employee.ToList()) //CREATE DATABASE permission denied in database 'master'`.
 End Function
  1. Should I fix this by changing the permissions on the MyDB database? Is this a permissions issue on the SQL server side? I am confused why I am getting a Create database error because the DB already exists.
  2. Am I getting this error b/c I have already created the database? Does the scaffolding want to create the database somehow?

Upvotes: 4

Views: 9754

Answers (4)

DKR
DKR

Reputation: 5744

<add name="Default" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=test2;user id=sa;password=123456" 
providerName="System.Data.SqlClient" />

Use this connection string for your application

Upvotes: 0

HPP
HPP

Reputation: 244

USE master; EXECUTE sp_addsrvrolemember @loginame = N'YourAppUserLogin', @rolename = N'dbcreator';

Upvotes: 0

Yini
Yini

Reputation: 711

1.You need to set IIS app pool identity to be ASP.NET integration mode.

2.Add a login in SQL Server for IIS APPPOOL\ASP.NET.

3.In SQL Server, set IIS APP POOL login to have dbcreator role.

Upvotes: 3

swannee
swannee

Reputation: 3466

Sounds like it is trying to create a new DB by the error message. I'm guessing that you are using EF code first with your project and using it's migration capability to build your DB. Check the setup of the EF context to make sure it's using your connection string.

The connection string or its name can be passed to constructor of DbContext. If you are using default constructor it searches for the connection string with the same name as the name of your derived context class. Basically, make sure your connection string has the same name as your derived dbcontext class and it should find it.

See this post for additional information

Upvotes: 4

Related Questions