H2数据库:防止用户转储数据库内容(SCRIPT、BACKUP等)
Posted
技术标签:
【中文标题】H2数据库:防止用户转储数据库内容(SCRIPT、BACKUP等)【英文标题】:H2 database: prevent users from dumping database content (SCRIPT, BACKUP, etc) 【发布时间】:2011-05-27 06:23:19 【问题描述】:我们在服务器模式下使用 Java + H2 数据库,因为我们不希望用户访问数据库文件。
所有由管理员创建的数据库用户都是普通用户(不是管理员)。那些普通用户还有其他可能获取数据库内容吗?我尝试了 SCRIPT 和 BACKUP 命令,但失败了,因为它们需要管理员权限。太好了:)
设置用户不是管理员是否足以保护用户免于转储数据库内容?
更多,使应用程序用户=数据库用户,一个好的安全实践吗?以前,对于身份验证,我们使用数据库中的自定义“用户”表,而不是数据库用户。
谢谢。
【问题讨论】:
由于这可能与 H2 database: how to protect with encryption, without exposing file encryption key 重复,请更新您的原始问题。 这不是重复的。这个问题是关于保护数据库内容不被普通用户转储,一旦用户登录到 H2 控制台。另外,我还询问了将数据库用户用作应用程序用户的编程实践。另一个问题(已链接)是关于隐藏加密密钥的。 【参考方案1】:这些普通用户是否有其他可能获取数据库内容?
没有。这就是数据库用户和权限的重点,因此用户只能访问他被允许访问的数据。
设置用户不是管理员是否足以保护用户免于转储数据库内容?
是的。
使应用程序用户=数据库用户,一个好的安全实践吗?
是的,如果客户端应用程序可以访问数据库(通过 TCP/IP)。
以前,对于身份验证,我们使用数据库中的自定义“用户”表,而不是数据库用户。
这是 Web 应用程序和其他 3 层系统(用户无权访问数据库)的常见解决方案。
【讨论】:
是否可以阻止普通用户访问information_schema? 嗯,普通用户对 information_schema 应该没有或只有有限的访问权限...我看到他们目前拥有完全的读取权限。这不好,我会尝试解决这个问题。目前没有办法阻止用户访问这些表。以上是关于H2数据库:防止用户转储数据库内容(SCRIPT、BACKUP等)的主要内容,如果未能解决你的问题,请参考以下文章