8

C# と Entity Framework 6 Code First を SQL Server 2014 と共に使用して開発された外部プロジェクトがあります。これには Web サイトと wcf サービスがあります。

現在、プロジェクト請負業者は、展開のために、Web サイトを実行する IIS APPOOL ユーザーが機能するには db_datareader、db_datawriter、および db_ddladmin のメンバーシップが必要であり、実際にこれらの権利を付与しないと機能しないと述べています。

SQL-Guru ではないので、展開に db_ddladmin 権限は必要ないと感じていますが、請負業者はそれは EF Code First では完全に正常であり、問​​題は見られません。ネットで検索しても、これらの権利に問題がある可能性があることが明らかになったようです ( http://akawn.com/blog/2012/02/why-you-should-be-cautious-with-the-dbo_owner-role/ )。また、EFフレームワークのコードファーストが本当にそれらの権利を必要とするのは少し正気ではないことを私に示します...

では、EF Code First には db_ddladmin が必要ですか? また、デプロイされた Web プロジェクトが db_ddladmin のデータベース アクセス権を必要とすることは問題ですか?

前もって感謝します!

4

1 に答える 1

6

これは確かに問題になる可能性があります。Entity Framework は、ユーザーが移行db_ddladminの権利を持っていることを前提としています。他の段階では、この許可は必要ありません。

これを処理するにはいくつかの方法があります。アクセス許可を付与し、移行を実行してからアクセス許可を削除するか、次のように SQL スクリプトをエクスポートしてサーバーに対して実行することができます Update-Database -Script -SourceMigration:0(最初から現在の状態までのスクリプト)。将来の移行展開では、サーバーの現在の移行値から開始するか、アクセス許可を追加/削除して、同じ手順を実行する必要があります。

于 2014-12-03T11:43:14.050 に答える