[
https://issues.apache.org/jira/browse/DERBY-2264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12470266
]
Rick Hillegas commented on DERBY-2264:
--------------------------------------
Hi Dag,
Here's a long preamble about our security model and then a brief discussion of
your specific question. We seem to have 3 independent toggles for controlling
Derby security:
A) Whether Java Security is on.
B) Whether user authentication is on.
C) Whether SQL authorization is on.
That gives rise to 8 security states, not all of which makes sense to me. Here
they are, expressed in terms of (A, B, C):
1) (off, off, off). This is the maximally unsecure configuration. It seems like
a sensible out-of-the-box default for embedded apps.
2) (off, off, on). Turning authorization on but turning authentication off
doesn't make sense to me. We raise a warning when the customer does this, but
we let them do it, nonetheless.
3) (off, on, off). I think this is supported because we added GRANT/REVOKE long
after we added user authentication. I see limited use for this configuration.
4) (off, on, on). This case may be useful for customers who want GRANT/REVOKE
protections but don't want the performance drag imposed by Java security. I
don't know how significant that drag is on a Derby engine which has reached
steady-state. That's an interesting experiment to run.
5) (on, off, off). This might be useful for Derby-powered apps which are
downloaded into a browser.
6) (on, off, on). Like (2), this doesn't make much sense to me.
7) (on, on, off). Like (3), this doesn't make much sense to me either. However,
I think we are proposing this as our secure-by-default server configuration. I
think we've ended up with this as a default for the same reason that we support
configuration (3): this eases the upgrade problem for legacy applications.
8) (on, on, on) This is the maximally secure configuration. It makes more sense
to me as the out-of-the-box default for the network server.
I can imagine this is a bit perplexing to customers. For my money, (1) and (8)
look like two distinguished states whose semantics are very clear. Everything
in-between is a little muddy
Now on to your specific question. In terms of enforcing the database-shutdown
power, the only settings which make sense to me are (7) and (8). That is
because it seems odd to me to let an authenticated user shutdown the whole
engine but not a single database.
> Restrict shutdown, upgrade, and encryption powers to the database owner
> -----------------------------------------------------------------------
>
> Key: DERBY-2264
> URL: https://issues.apache.org/jira/browse/DERBY-2264
> Project: Derby
> Issue Type: New Feature
> Components: Security, SQL
> Reporter: Rick Hillegas
> Attachments: dbaPowers.html, dbaPowers.html
>
>
> This JIRA separates out the database-owner powers from the system privileges
> in the master security JIRA DERBY-2109. Restrict the following powers to the
> database owner for the moment: shutdown, upgrade, and encryption.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.