Chúng tôi đang triển khai một ứng dụng ASP.NET MVC đơn giản đến trên các máy chủ dàn dựng của chúng tôi và chúng tôi đang gặp lỗi sau khi EntityFramework cố di chuyển cơ sở dữ liệu hiện có.Di chuyển EntityFramework cố gắng tạo một cơ sở dữ liệu hiện có
CREATE DATABASE permission denied in database 'master'.
Tình hình là như sau:
- Đây là lần đầu tiên di cư chạy.
- Cơ sở dữ liệu đã tồn tại (nó thực sự là một cơ sở dữ liệu Umbraco).
Nó sẽ xuất hiện các phương pháp sau đây (từ EntityFramework) trả về false, khi nó rõ ràng nên trở thành sự thật:
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists()
Các initializer cơ sở dữ liệu có đoạn mã sau:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());
tự động di chuyển bị tắt, bởi vì chúng tôi đang sử dụng di chuyển dựa trên mã.
Chuỗi kết nối trỏ đến cơ sở dữ liệu chính xác và người dùng có quyền db_owner trên cơ sở dữ liệu đó. Người dùng không có quyền đối với các bảng khác trên máy chủ.
Đây có phải là sự cố thường gặp không? Có ai biết một giải pháp cho điều này?
Thnx!
bạn có thể thử thiết lập nó để không bị thạc sĩ như đó là tên của một cơ sở dữ liệu hệ thống và có thể gây ra các vấn đề –
trùng lặp có thể xảy ra [CREATE DATABASE permission bị từ chối trong cơ sở dữ liệu 'master' Entity Framework Migration] (http://stackoverflow.com/questions/11814762/create-database-permission-denied-in-database-master-entity-framework-migratio) –
Cơ sở dữ liệu tên trong chuỗi kết nối không phải là chủ (vì đây thực sự là một cơ sở dữ liệu hệ thống). Đó là cơ sở dữ liệu hiện có và người dùng chỉ có quyền đối với db đó. EntityFramework cố gắng tạo cơ sở dữ liệu vì các EnsureDatabaseExists báo cáo rằng không có cơ sở dữ liệu. Sau đó EF cố gắng tạo DB, nhưng người dùng không có quyền đối với điều đó. Tuy nhiên, đó không phải là vấn đề. EF không phát hiện ra rằng db thực sự tồn tại vì một lý do nào đó –