Derby
  1. Derby
  2. DERBY-3186

Do not allow the user to create inaccessible databases

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Services
    • Labels:
      None
    • Bug behavior facts:
      Security

      Description

      When dealing with users and properties, it is possible to create inaccessible or unmanageable databases. This happens only (I think) when derby.database.propertiesOnly is set to true.
      checks should be implemented to avoid that. Examples:

      The user should not be allowed to set both derby.database.propertiesOnly and derby.connection.requireAuthentication on database level without having defined any users on the database level. A database with both these properties set and no users will be inaccessible.

      The user should not be allowed to set derby.database.propertiesOnly, derby.connection.requireAuthentication and derby.database.sqlAuthorization without the current user (which will be the database owner) defined on the database level. A database with this settings may not be managed (properties may not be changed, users may not be created or deleted).

      Note that its much easier to create these situations with GUI interfaces (e.g. JConsole and JMX) than with the tedious editing of property calls and sql system routines that we currently offer.

        Activity

        Bernt M. Johnsen created issue -
        Hide
        Daniel John Debrunner added a comment -

        > The user should not be allowed to set both derby.database.propertiesOnly and derby.connection.requireAuthentication on database level without having defined any users on the database level.

        Just a reminder that Derby does not require users to be defined at the database level (by Derby), e.g. the authentication and thus user definition may be through LDAP. So the above statement should include and "derby.authentication.provider=BUILTIN" (maybe including "derby.authentication.provider not set" as well?).

        Show
        Daniel John Debrunner added a comment - > The user should not be allowed to set both derby.database.propertiesOnly and derby.connection.requireAuthentication on database level without having defined any users on the database level. Just a reminder that Derby does not require users to be defined at the database level (by Derby), e.g. the authentication and thus user definition may be through LDAP. So the above statement should include and "derby.authentication.provider=BUILTIN" (maybe including "derby.authentication.provider not set" as well?).
        Hide
        Bernt M. Johnsen added a comment -

        Thanks Dan. If an external authentication provider is defined (either LDAP or a class name), it will of course be possible to define the needed users after the fact, and the database eill be accessible/manageable when that is done.

        Show
        Bernt M. Johnsen added a comment - Thanks Dan. If an external authentication provider is defined (either LDAP or a class name), it will of course be possible to define the needed users after the fact, and the database eill be accessible/manageable when that is done.
        Kathey Marsden made changes -
        Field Original Value New Value
        Component/s Security [ 11411 ]
        Hide
        John H. Embretsen added a comment -

        Until DERBY-3272 is fixed, it is possible to create an inaccessible database even if a user is defined on the database level. This happens if all users defined as database properties are also defined as system properties when the database properties (user credentials) are being set.

        Show
        John H. Embretsen added a comment - Until DERBY-3272 is fixed, it is possible to create an inaccessible database even if a user is defined on the database level. This happens if all users defined as database properties are also defined as system properties when the database properties (user credentials) are being set.
        Dag H. Wanvik made changes -
        Derby Categories [Security]
        Dag H. Wanvik made changes -
        Component/s Security [ 11411 ]
        Dag H. Wanvik made changes -
        Component/s Services [ 11415 ]
        Gavin made changes -
        Workflow jira [ 12416643 ] Default workflow, editable Closed status [ 12799355 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Bernt M. Johnsen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development