2016-07-21 37 views
0

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

当我部署&将它安装到我的朋友的PC上;软件清晰显示数据库文件。如果他在SQL Server中打开该文件,那么他可以观看我的SQL查询,tbl结构等。

我只是想隐藏所有这些来自我的客户。

我该怎么做?

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

请帮帮我。

+2

您应该将数据库隐藏在具有身份验证的web服务之后。切勿直接与客户端的数据库直接对话。 – SLaks

+0

您可以创建加密某些数据库对象,但是,如果某些人拥有管理员权限,则可以对其进行解密。你无法隐藏数据库管理员的东西。 – FLICKER

+0

1.通过使用Web服务,我无法从我的客户端隐藏数据库文件。 2. SQL 2014+版本中可用的加密/解密选项 我正在使用2008 R2。 – user3260083

回答

0

如果您的应用程序和数据库都部署在您朋友的PC上,那么几乎没有任何事情可以阻止他/她进入您的数据库。

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

这不是SQL Server独有的,同样的问题也适用于市场上几乎所有的RDBMS。如果您拥有该盒子,则不难获取数据库内容。软件供应商几十年来一直在尝试这样做,而大多数公司只是合法地放弃和保护其IP。这对你来说并不安慰,但它是现实。

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

相关问题