Make DBO restrictions from Derby-2264 optional for upgrades
-----------------------------------------------------------

                 Key: DERBY-2728
                 URL: https://issues.apache.org/jira/browse/DERBY-2728
             Project: Derby
          Issue Type: Bug
    Affects Versions: 10.3.0.0
            Reporter: Stan Bradbury


The DBO restrictions implemented in Derby-2264 will, by default, break 
compatibility for some applications using connection based authentication.  Put 
simply, removing the ability for any user to shutdown or upgrade a database 
will cause failures in systems that depend on that functionality.  I am certain 
that many Derby installations depend on the near-zero-admin nature of the old 
authentication system.  This feature introduces an administrative account that 
will require changes in some existing designs.  I think this feature will have 
is greater negative impact on existing systems than anyone suspects and these 
restrictions should be made optional.   

==== The email thread comments on derby-dev:

  >>>>     Email from Rick Hillegas and thread:
Daniel John Debrunner wrote:
> Dag H. Wanvik wrote:
>> Hi,
>>
>> Stanley Bradbury <[EMAIL PROTECTED]> writes:
>>
>>> I feel strongly that the restrictions implemented by DERBY-2264 must
>>> be tied to sqlAuthorization (or a new property of it's own) being
>>> turned on.  The restrictions need to be optional at upgrade otherwise
>>
>> I understand your concerns. I addressed the upgrade issue several
>> times in the discussion of this issue, but felt the community
>> preferred the semantics which are currently implemented, landing on
>> the side of a sensible secure-by-default behavior. Options:
>
> Was there any discussion outside of comments in DERBY-2264? I looked in the 
> archives but couldn't see any between 2007/02/13 and 2007/02/20. I picked 
> that date range because on 02/20 you said in DERBY-2264
>
>  "Right, it seems both Dan and Rick are less concerned than me about the
> compatibility here issue, so I rest my case. "
>
> That was the first comment since 02/13, however, I don't see how my single 
> comment in DERBY-2264 could lead you to that conclusion, I thought it's was 
> just factual about authentication states. I'm sure there must have been a 
> discussion elsewhere, but I can't find it at the moment.
>
> Dan.
>
>
>
I don't see any other discussion beyond what appears in DERBY-2264. I like 
Dag's original proposal that we should restrict DBO powers only if both 
authentication and authorization are enabled. I don't like the idea of adding 
another security knob for this.

Regards,
-Rick

  >>>>     Email from Stan Bradbury  and thread (with spell checker changes 
undone):
Mike Matrigali wrote:
>
>
> Dag H. Wanvik wrote:
>> Hi,
>>
>> Stanley Bradbury <[EMAIL PROTECTED]> writes:
>>
>>
>>> I feel strongly that the restrictions implemented by DERBY-2264 must
>>> be tied to sqlAuthorization (or a new property of it's own) being
>>> turned on.  The restrictions need to be optional at upgrade otherwise
>>
>>
>> I understand your concerns. I addressed the upgrade issue several
>> times in the discussion of this issue, but felt the community
>> preferred the semantics which are currently implemented, landing on
>> the side of a sensible secure-by-default behavior. Options:
>>
>>     - label this a major release (11.0), lowering the expectancy for a
>>       painless upgrade with users.
>>     - postpose the 10.3 release and change the semantics to something
>>       else (tie enforcement to sqlAuthorization, introduce new
>>       property to turn this checking off (default on) or vice versa)
>>     - release it as it stands, but make a follow-up release with some
>>       knob to allow users to disable it; making sure to call this out
>>       in release notes. Note: since hard upgrade is among the operations
>>       restricted, users would likely (although not necessarily) get
>>       some hint of the issue early on ;)
>>     - pull the feature from 10.3 (I'd love to avoid that ;)
>>     - others?
>>
>> We need to decide pretty quick; this is a bit late in the game.. What
>> say others?
>>
> I agree.  Let's somehow mark this issue as a blocker for the 10.3 release.  I 
> am not saying a change is necessary for the release, only
> some consensus on the right approach.  It is not clear to me that
> the issue was fully understood, or noticed by the community at that point.
>
> I am ok with delaying the release get discussion/consensus on this issue.
>> Thanks,
>>
>> Dag
>>
>>
>>> the feature will, by default, break compatibility for some
>>> applications using connection based authentication.  Put simply,
>>> removing the ability for any user to shutdown or upgrade a database
>>> will cause failures in systems that depend on that functionality.  I
>>> am certain that many Derby users like the near-zero-admin nature of
>>> the old authentication system.  This feature introduces an
>>> administrative account.  Dag originally suggested the feature be tied
>>> to sqlAuthorization (thank-you, Dag) when he noted that the patch
>>> caused some tests in derbyall to fail.  Now that I have had time work
>>> with the feature and better evaluate the impact I see this as
>>> necessary for compatibility.  This issue will be logged in JIRA before
>>> long but I chose to begin the discussion outside of JIRA to increase
>>> mailbox visibility.  Any opinions - agreements/objections?
>>
>>
>>
>
>
I'll open a JIRA blocker issue on this later today (after all the meetings are 
over *whew*).  I'll use the Title/Summary:  Make DBO restrictions from 
Derby-2264 optional at upgrade.  I do not believe that existing Derby Users are 
aware of this change and I think the impact of will have is greater than anyone 
suspects.  For instance, it appears that if ';upgrade=true' is hardcoded in the 
connection URL that only the DO account will be able to access the database.  I 
suspect there are other issues like this as well.

I will also add some additional information and suggest that as a sub-task (or 
super task - is that possible?) be added regarding deciding as a community how 
we will introduce changes like this.  By 'like this' I mean changing previous 
behavior.  More to the point is; defining a deprecation process that allows the 
Derby user-base to obtain a new release, assess the impact of 'changes' (the 
Release Notes will be the introduction of these issues for many users) and, by 
making the changes optional (activated by a property ?), allow applications 
that require significant rework to upgrade  then begin  work on  what maybe 
several months to a year of coding and testing to become compliant with the 
behavior.




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to