隐藏数据库用户的表

时间:2011-12-20 13:01:15

标签: sql sql-server security sql-server-2008 encryption

我有一个使用SQL Server 2008中的数据库的Web应用程序。我是该项目的开发人员,该项目已在其他地方托管。

我已将该项目交付给管理员。现在管理员可以连接到SQL Server,但我不希望管理员能够看到数据库表。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

我之前已经看到过ACT的制作人。他们的产品安装了一个新的SQL Server Express实例,作为该过程的一部分,他们加密了实例的sa密码。这使得其他人“不可能”使用除产品和附加工具之外的任何东西连接到数据库。 我不确切知道他们是如何做到的,但也许你可以搜索加密sa密码或类似的东西,并找出如何做到这一点。 害羞安装自己的SQL Server实例我不知道你会怎么做。 请记住,您的应用程序需要提供备份,调整,修改等数据库的能力,因为DBA无法访问SQL Server实例。

顺便说一句,一旦我们看到这一点,我们就把ACT扔了出去 - 我没有,现在也没有,就像在我们的一台服务器上运行黑盒子的想法一样。

最后,你可能会发现这个增加的保护层(对你而不是客户端)不值得加重。虽然您可能拥有数据库模式形式的专有信息,但客户端对您的应用程序进行逆向工程,然后制作自己的应用程序的可能性很小。即使他们这样做了,也很难制作出好的软件 - 无论如何他们可能都不会'正确'。

我的建议,不要担心这一点,专注于让你的软件变得更好,所以没有理由让他们自己动手或寻找其他地方。

答案 1 :(得分:1)

简单:不,他是DBA。没有能力使用数据库,他就无法完成他的工作。克服你的反对意见。

答案 2 :(得分:0)

您不能限制服务器上管理员的权限。

管理员还可以访问几乎所有存储加密密钥的表,因此TDE将无法正常工作。

如果他是安全管理员或其他角色之一,可能会解决此问题,因为默认情况下此类角色对您的数据没有任何权限。

SQL管理员通常具有这些角色来保护您的数据。他们需要它。 如果数据非常敏感,则需要使用其他方法来保护数据,例如在保存敏感值之前应用自己的加密。 (AES等)