db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-866) Derby User Management Enhancements
Date Fri, 02 Dec 2011 19:15:39 GMT

    [ https://issues.apache.org/jira/browse/DERBY-866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13161794#comment-13161794

Dag H. Wanvik commented on DERBY-866:

I have read through the attached spec document UserManagement.html, thanks Rick! Looks like
we're aiming for a much better user experience with this one. Some comments.

1) Is locking out the users unconditionally after the password expiration nice? You do provide
a method (modifyPassword) to let users update their password. How about letting the connect
issue a warning is the password is getting stale according to some criterion? This would enable
user apps to take action before it's too late and the DBO needs to be called into action,
which could be impractical. Also there is a security downside to that, in that the DBO would
have access to the users' password. Presently, its kind of moot, since the DBO can access
all schemas anyway, but we might change that in the future..

2) How do you envisage the initial DBO credentials be specified? For the controlling property
to be allowed to be set, you state

  "derby.authentication.provider - ... This value can only be set if there are credentials
for the DBO in SYSUSERS."

So I wonder about the bootstrap here: DBO credentials could be taken from supplied credentials
(i.e. they would be required) in the URL with the "create=true". You state:

  "If you set this value (i.e. derby.authentication.provider -dhw) using a system property
before you create databases, all new databases will automatically be set to use NATIVE authentication"

If so, it seems it would be too late the call createUser to create the DBO manually? The use
of the URL would also force a string with the DBO password to be constructed in that case,

3) Like you, I also have reservations about the Clob datatype interface, but it does avoid
the complexity of a new Derby type..not sure what's the right thing to do, maybe you could
make an example with a Derby type so we can see how its looks..

4) nit: examples have password[0] instead of password[i] in the loop to erase the password
array characters

5) In the examples, it may be useful to state that if users are created from a network client,
ssl should be enabled. Not important here, but as a note to self when we write the docs based
on this in the future..

> Derby User Management Enhancements
> ----------------------------------
>                 Key: DERBY-866
>                 URL: https://issues.apache.org/jira/browse/DERBY-866
>             Project: Derby
>          Issue Type: Improvement
>          Components: Services
>    Affects Versions:
>            Reporter: Francois Orsini
>         Attachments: Derby_User_Enhancement.html, Derby_User_Enhancement_v1.1.html, DummyAuthenticator.java,
UserManagement.html, dummyCredentials.properties
> Proposal to enhance Derby's Built-In DDL User Management. (See proposal spec attached
to the JIRA).
> Abstract:
> This feature aims at improving the way BUILT-IN users are managed in Derby by providing
a more intuitive and familiar DDL interface. Currently (in, Built-In users can be
defined at the system and/or database level. Users created at the system level can be defined
via JVM or/and Derby system properties in the derby.properties file. Built-in users created
at the database level are defined via a call to a Derby system procedure (SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY)
which sets a database property.
> Defining a user at the system level is very convenient and practical during the development
phase (EOD) of an application - However, the user's password is not encrypted and consequently
appears in clear in the derby.properties file. Hence, for an application going into production,
whether it is embedded or not, it is preferable to create users at the database level where
the password is encrypted.
> There is no real ANSI SQL standard for managing users in SQL but by providing a more
intuitive and known interface, it will ease Built-In User management at the database level
as well as Derby's adoption.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message