如何密码保护使用 Entity Framework Code First 创建的数据库?

How to password protect database that is created using Entity Framework Code First?

标题说明了一切:由于我们即将发布使用本地数据库 (SQLServer 2014 LocalDb) 的桌面应用程序,我们希望使用密码保护对它的访问。

数据库将在用户第一次启动应用程序时使用 EF Code First 在用户计算机上创建。 这一定很简单,但我似乎忽略了应该在 Google.

上出现的解决方案

这里的简短回答是你不能密码保护 LocalDb。 LocalDb 旨在成为用于开发和测试的低摩擦数据库设置,但它不提供 SQL 甚至 SQL 精简版的任何高级功能。来自 MSDN:

LocalDB is created specifically for developers. It is very easy to install and requires no management

然后是这个:

Moreover, if the simplicity (and limitations) of LocalDB fit the needs of the target application environment, developers can continue using it in production, as LocalDB makes a pretty good embedded database too

"pretty good" 表示虽然可行,但可能有更好的解决方案。本质上,缺乏安全性是 LocalDB 的一个特性。它旨在 运行 作为当前登录的用户,给予他们完全访问权限。

如果您需要将数据库安全性作为已部署应用程序的一项功能,但不想处理完整 SQL 安装的复杂性,您应该考虑 SQL 精简版。

请参阅这篇文章 How to: Deploy a SQL Server Compact 4.0 Database with an Application。部署将根据应用程序其余部分使用的部署方法而有所不同。

Entity Framework 是一个 抽象层 ,它没有专门绑定到特定的数据库技术。它与 LocalDb、SQL Compact、SQL Express、MySQL、postgresql 等的工作方式相同...通常只需提供正确的数据库驱动程序和正确的连接字符串。