Database 如何保护数据库?

Database 如何保护数据库?,database,security,database-design,Database,Security,Database Design,有一个带有服务器数据库的网站。我正在构建一个桌面应用程序,它使用其中一个表中的数据。黑客可以从程序集中获取密码 如何保护数据库?我根本不会将数据库信息存储在应用程序中。相反,我将为网站上的数据库创建一个API,可能实现一个RESTful接口,或者使用以适当格式返回数据的查询,例如JSON、XML甚至纯文本。然后应用程序可以调用这些web服务并处理结果。您的所有数据库信息都保留在服务器上,在服务器上(希望)是安全的。不要让数据库用户在应用程序登录时对应用程序数据以外的任何内容执行任何写操作或读操作

有一个带有服务器数据库的网站。我正在构建一个桌面应用程序,它使用其中一个表中的数据。黑客可以从程序集中获取密码


如何保护数据库?

我根本不会将数据库信息存储在应用程序中。相反,我将为网站上的数据库创建一个API,可能实现一个RESTful接口,或者使用以适当格式返回数据的查询,例如JSON、XML甚至纯文本。然后应用程序可以调用这些web服务并处理结果。您的所有数据库信息都保留在服务器上,在服务器上(希望)是安全的。

不要让数据库用户在应用程序登录时对应用程序数据以外的任何内容执行任何写操作或读操作


或者,选择一个理智的架构,正如托马斯在上面提到的那样。数据库用于存储和检索数据,它们不是通用的应用程序服务器。

API添加了有时不必要的应用程序层。并非所有我参与过的应用程序都能轻松地从使用数据库调用转换为Web服务调用。如果应用程序还没有被编写出来,我想这也没什么大不了的

我的替代方案是:

  • 使用某种安全隧道连接到服务器
  • 在磁盘上保存加密的密码
  • 这将节省我创建API的工作量,而在我的大多数项目中,创建API都是浪费时间

    如果您想将应用程序分发给客户,那么这种替代方案是不可行的

    你可以

    A) 创建一个三层体系。您的客户机可以与服务器交互,而服务器又与数据库交互。服务器存储访问凭据


    B) 在数据库上为用户创建个人帐户。如果需要对数据进行细粒度访问控制,则此两层模型适用。例如,在具有不同用户角色的内部应用程序中。

    所有这些垃圾如何保护数据库?必要的是:适当的访问控制,大量使用完整性约束和视图以实现细粒度安全(基于能力的安全)。我能想到的只有一个理由来沙箱DBMS实现:它很烂,可以被愚弄,修改它的通信协议。但即使在这种情况下,我也看不出冗余文本协议能起到什么作用,因为网络可能是瓶颈。这种“垃圾”可以保护数据库,因为您可以限制用户对内容的访问,而不必冒安全风险。在所有情况下,这可能不是最佳的解决方案,但这绝对是一个我会考虑的问题。我很困惑。除了第一句话之外,你读过我的评论吗?其余的都不正确。很多人用沙箱存储他们的数据库,他们应该这样做。这是正确的做法。感谢您对这一深刻的技术启示,“他们都这样做了”。。。如果我喜欢莫扎特(或丁托·布拉斯),我希望你不会生气。