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

时间:2015-01-16 23:02:33

标签: sql-server entity-framework security

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

首次启动应用程序时,将在用户计算机上使用EF Code First创建数据库。  这一定非常简单,但我似乎忽略了应该在Google上出现的解决方案。

1 个答案:

答案 0 :(得分:4)

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

  

LocalDB专为开发人员创建。它非常易于安装,无需管理

然后有这个:

  

此外,如果LocalDB的简单性(和限制)符合目标应用程序环境的需求,开发人员可以继续在生产中使用它,因为LocalDB也是一个非常好的嵌入式数据库

"非常好"意味着虽然它会起作用,但可能有更好的解决方案。从本质上讲,缺乏安全性是LocalDB的一个特性。它旨在作为当前登录的用户运行,为他们提供完全访问权限。

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

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

实体框架是一个抽象层,它没有专门与特定的数据库技术相关联。它将与LocalDb,SQL Compact,SQL Express,MySQL,postgresql等完全相同...通常只有正确的数据库驱动程序和提供的正确连接字符串。