Winform应用程序中的数据库安全性

时间:2016-07-21 18:08:24

标签: c# sql-server winforms database-security

我为一位朋友开发了一个带有SQL Server 2008 R2数据库的Winforms应用程序。

当我部署&把它安装在我朋友的电脑上;软件清楚地显示数据库文件如果他在SQL Server中打开该文件,那么他就能够查看我的SQL查询,tbl结构等。

我只是想把这一切都隐藏在我的客户手中。

我该怎么做?

我在互联网上搜索一些软件。当我把它安装在我的电脑上时;它没有向我显示任何数据库文件。他们是怎么做到的?

请帮帮我。

1 个答案:

答案 0 :(得分:0)

如果您的应用程序和数据库都部署在您朋友的PC上,那么您几乎无法阻止他/她进入您的数据库。

SQL Server中没有阻止来自授权用户(例如管理员)的架构视图的功能,如果您拥有该机器,即使您最初没有添加到SQL Server,也可以通过多种方式将自己呈现为SQL Server的管理员。管理员角色或给予SA帐户访问权限。您可以设置障碍,例如将所有内容放入存储过程然后加密SP,但它只是一个小障碍,而不是墙。

这不是SQL Server独有的,同样的问题几乎适用于市场上的任何RDBMS。如果您拥有该框,则不难获得数据库内容。数十年来,软件供应商一直在尝试这样做,而大多数人只是合法地放弃并保护他们的IP。这对你没有安慰,但这是现实。

如果使用像Azure这样的服务是可行的,您可以在Azure中托管您的应用程序,数据库可以是Azure SQL DB或VM中的常规SQL Server。如果功能集和表面区域适合您,我建议使用前者;它与您习惯使用的SQL Server盒产品不完全相同。但是,管理和保护的工作要少得多。通过Azure中的应用程序,您的朋友和客户将通过浏览器访问,并且永远不能直接访问数据库。即使应用程序本地安装在您的朋友或客户端上也是如此。机器,它很容易设计应用程序,使他们只能访问数据,而不是其他任何东西。