【问题标题】:Convert single-user Apache Derby database to one with users将单用户 Apache Derby 数据库转换为一个有用户的数据库
【发布时间】:2012-03-19 11:26:06
【问题描述】:

我有一个 Apache Derby 数据库,到目前为止,它一直是本地访问的。它现在需要被多台计算机访问,所以我觉得它应该有一个用户名/密码。

  1. 如何获取现有数据库并追溯添加用户
  2. 如何为该用户提供本地/网络身份验证?

我记得几年前浏览过他们的文档,在这些情况下,开发人员似乎还有很多事情要做。

为了澄清更多,关于第 1 点,this page 说:

注意:目前无法在创建数据库后更改数据库所有者。这意味着,如果您计划在启用 SQL 授权的情况下运行,则应确保以您希望成为所有者的用户身份创建数据库。

我认为这意味着我可能必须使用指定用户创建一个新数据库,并将所有日期从原始单用户数据库迁移到新数据库。它是否正确?有没有更简单的方法?

关于第二个问题,the manual says

重要提示:Derby 的内置身份验证机制仅适用于开发和测试目的。强烈建议生产系统依赖外部目录服务,例如 LDAP 或用户定义的类进行身份验证。

在我看来,内置身份验证不值得使用。我们也无法进行 LDAP 集成,那么在这两者之间有什么值得使用的东西吗?

【问题讨论】:

  • 也许您应该先查看他们当前的文档?
  • 我浏览过它们,它们看起来并没有什么不同。
  • this page 有用吗?说您需要将 derby.connection.requireAuthentication 属性设置为 true 并按照 here 的描述定义用户,例如设置derby.authentication.provider=BUILTIN
  • 每次我看到这个问题的标题时,我都误认为它是“转换 useless Apache Derby 数据库...” ;-) 必须该睡觉了...
  • 哈!我更改了标题,并更新了有关我的问题/疑虑的更多详细信息。感谢您迄今为止的反馈。

标签: java authentication networking derby


【解决方案1】:

由于您提到要从单用户环境过渡到多用户环境,因此您可能要设置网络服务器,因此您需要考虑两个安全级别:数据库身份验证、和网络服务器身份验证。

您可能想从这里开始:http://db.apache.org/derby/docs/10.8/adminguide/cadminapps49914.html 和这里: http://db.apache.org/derby/docs/10.8/devguide/cdevcsecure42374.html

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 2011-12-06
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多