标题说明了一切:由于我们即将发布使用本地数据库(SQLServer 2014 LocalDb)的桌面应用程序,我们希望用密码保护对它的访问。
首次启动应用程序时,将在用户计算机上使用EF Code First创建数据库。 这一定非常简单,但我似乎忽略了应该在Google上出现的解决方案。
答案 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等完全相同...通常只有正确的数据库驱动程序和提供的正确连接字符串。