使用Winforms应用程序部署SQL Server数据库

时间:2010-10-02 14:10:30

标签: database winforms sql-server-2005 setup-deployment

我创建了一个基于SQL DB的winforms应用程序,我想在客户端计算机上部署它。该程序是单用户桌面应用程序。

this帖子中的意见表明,在这种情况下使用SQLite或SQL Server Compact Edition会更好。但是,我更喜欢使用这些产品不支持的存储过程。

我的问题是关于安全问题:

  • 如果我使用Access数据库,我可以为数据库设置密码,这样至少没有经验的用户无法直接查看数据库。
  • 如何部署Winforms应用程序以安装SQL Server 2005 Express Edition并为我的.mdf数据库文件设置密码?
  • 哪些安装程序支持此请求? clickonce,windows installer,installshield等?

2 个答案:

答案 0 :(得分:2)

.mdf没有像.mdb那样执行。换句话说,您不需要使用密码配置.mdf文件,因为SQL Server将处理身份验证和授权的安全性。

不幸的是,访问对于您坚持使用存储过程的愿望无济于事。

建议在应用程序旁边部署SQL Server Express时存在太多潜在问题。在这种情况下,value of stored procs 可能不足以保证安装SQL Server Express的麻烦。

评估那些存储过程中正在进行的工作。它们只是CRUD,还是更复杂。 您在此单用户应用中存储过程的原因是什么?

考虑将您的应用程序重新设计为:

  • 使用参数化查询。将存储过程的主体移动到一个常量字符串中。
  • SQL Server Compact Edition

平衡重构时间与潜在的客户支持问题!

请考虑blogpost by Steve Lasker (Stored Procedures & SQL Server Compact-The Great Debate)。在评估存储过程是否适合客户端应用程序的工作时,它有一些很好的见解。

一些更新:

听起来你正试图避免那种.mdf失控。你可以采取一些措施来锁定数据 - 加密数据,但是没有100%的解决方案可以避免你的.mdf被带到其他地方。当你发表评论时,一旦它出现在客户手中,它就会超出你的范围。 :)

答案 1 :(得分:1)

您可能希望浏览this technet article讨论使用自定义应用程序的SQL Server 2005 Express部署。