sql - 对数据库用户隐藏表

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

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

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

有什么办法可以做到这一点吗?

最佳答案

我以前见过 ACT 制作者这样做过。他们的产品安装了一个新的 SQL Server Express 实例,并且作为该过程的一部分,他们对该实例的 sa 密码进行了加密。这使得其他人“不可能”使用除了他们的产品和附加工具之外的任何东西连接到数据库。 我不知道他们到底是如何做到这一点的,但也许您可以搜索“加密 sa 密码”或类似的内容,并了解如何做到这一点。 由于不敢安装自己的 SQL Server 实例,我不确定您会如何解决这个问题。 请记住,您的应用程序需要提供备份、调整、修改数据库等功能,因为 DBA 无法访问 SQL Server 实例。

顺便说一句,我们一看到这个就抛弃了 ACT - 我不喜欢,现在仍然不喜欢在我们的一台服务器上运行黑匣子的想法。

最后,您可能会发现这种额外的保护层(对您而言,而不是对客户来说)根本不值得烦恼。虽然您可能拥有数据库模式形式的专有信息,但客户对您的应用程序进行逆向工程然后制作自己的应用程序的可能性很小。即使他们这样做了,也很难开发出好的软件——无论如何,他们很可能都不会“正确”地做到这一点。

我的建议是,不要担心这一点,专注于让您的软件变得更好,这样他们就没有理由自行推出或寻找其他地方。

关于sql - 对数据库用户隐藏表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575846/

相关文章:

sql - 如何获取具有相同 ID 但其他列中具有不同值的所有行?

sql-server - 通过 Delphi DLL 连接到 SQL 时 Delphi 10.2 Tokyo 程序抛出 216 错误

java - 加密 war 文件

security - 在 OSGi 上使用 ThreadLocal 安全吗?

java - 如何在 JSF/Richfaces 上设置 HttpOnly 标志

php - 检查酒店房间的可用性

sql - 我如何设计这个链接表?

c# - MS Access SQL 插入查询

java - 为什么 CLASSPATH 对于 Python 失败但对于 RazorSQL 却有效?

c# - 将 DataTable 作为参数传递给存储过程