Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EF 4.1 CF: CREATE DATABASE permission denied in database 'master'

Entity Framework 4.1 Code First works great with SQLEXPRESS on localhost. However, I'm now ready to connect to a regular SQL 2008 server.

  1. I created a new database "NewEfDatabase".

  2. Then changed my "ApplicationServices" connectionString in Web.config to point to my new database with integrated security.

But then I get this error:

"CREATE DATABASE permission denied in database 'master'."

So...

a) What permissions does EF 4.1 CF need on said SQL server to do its work?

b) Can I setup an empty database on SQL 2008 for EF 4.1 CF, or do I have to let it do all that work for me? (I'm not sure my DBA would appreciate letting my EF app have rights to do anything outside a particular database)

like image 478
Dan Sorensen Avatar asked Apr 07 '11 16:04

Dan Sorensen


1 Answers

Did you make sure to set your Database Initializer to null in your code:

Database.SetInitializer<MyDbContext>(null);

All built-in implementations if the initializer may try to drop or create a new database. The error you get indicate that EF tried to drop/create a database but hasn't the right to do so in your SQL Server instance. The line above is the only option to avoid this generally and is suited (I think even absolutely necessary) for live environments anyway where you don't want accidental deletion (due to model changes or something).

like image 121
Slauma Avatar answered Sep 22 '22 07:09

Slauma