[
https://issues.apache.org/jira/browse/DERBY-866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-866:
--------------------------------
Attachment: derby-866-07-aa-removeSQLPassword.diff
Attaching derby-866-07-aa-removeSQLPassword.diff. This backs out the addition
of the SQLPassword internal datatype. I am running regression tests now.
I have been thinking more about the problem which SQLPassword tries to tackle:
password Strings are vulnerable to being sniffed in memory, in swap files, and
in crash dumps. I have been reading more about the issue and I have come to the
conclusion that char[] representations narrow the vulnerability but do not
eliminate it. In addition, password maintenance is a rare event compared to the
day-to-day event of logging in. As long as JDBC login uses String passwords, I
don't see much value in securing password maintenance. The small security boost
does not justify the extra complexity of a new, internal-only data type. I am
therefore removing SQLPassword.
This patch backs out much of derby-866-02-ag-createDropUser.diff (subversion
revision 1220807).
Touches the following files:
M java/engine/org/apache/derby/impl/sql/compile/SQLToJavaValueNode.java
M
java/engine/org/apache/derby/impl/sql/compile/TypeCompilerFactoryImpl.java
M java/engine/org/apache/derby/impl/sql/compile/CharTypeCompiler.java
M java/engine/org/apache/derby/impl/sql/GenericParameter.java
M java/engine/org/apache/derby/impl/sql/execute/ValueRow.java
M java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java
M java/engine/org/apache/derby/impl/sql/execute/IndexValueRow.java
M java/engine/org/apache/derby/impl/sql/execute/CardinalityCounter.java
M java/engine/org/apache/derby/impl/sql/execute/RowUtil.java
M java/engine/org/apache/derby/impl/sql/execute/RIBulkChecker.java
M java/engine/org/apache/derby/impl/sql/execute/BaseActivation.java
M
java/engine/org/apache/derby/impl/sql/execute/TemporaryRowHolderImpl.java
M java/engine/org/apache/derby/impl/sql/execute/BasicSortObserver.java
M java/engine/org/apache/derby/impl/sql/GenericParameterValueSet.java
M java/engine/org/apache/derby/impl/sql/catalog/DataDictionaryImpl.java
M java/engine/org/apache/derby/impl/sql/GenericActivationHolder.java
M java/engine/org/apache/derby/impl/jdbc/EmbedPreparedStatement.java
M
java/engine/org/apache/derby/impl/services/daemon/IndexStatisticsDaemonImpl.java
M java/engine/org/apache/derby/iapi/sql/Activation.java
M java/engine/org/apache/derby/iapi/sql/execute/ExecRow.java
M java/engine/org/apache/derby/iapi/sql/ParameterValueSet.java
M java/engine/org/apache/derby/iapi/services/io/RegisteredFormatIds.java
M java/engine/org/apache/derby/iapi/services/io/StoredFormatIds.java
M java/engine/org/apache/derby/iapi/types/TypeId.java
M java/engine/org/apache/derby/iapi/types/DataValueDescriptor.java
M java/engine/org/apache/derby/iapi/types/DataTypeDescriptor.java
M java/engine/org/apache/derby/iapi/types/DataType.java
M java/engine/org/apache/derby/iapi/types/ReaderToUTF8Stream.java
M java/engine/org/apache/derby/iapi/types/SQLRef.java
M java/engine/org/apache/derby/iapi/types/StringDataValue.java
M java/engine/org/apache/derby/iapi/types/XML.java
D java/engine/org/apache/derby/iapi/types/SQLPassword.java
M java/engine/org/apache/derby/iapi/types/SQLChar.java
M java/engine/org/apache/derby/iapi/types/SQLVarchar.java
M java/engine/org/apache/derby/iapi/types/DataValueFactoryImpl.java
M java/engine/org/apache/derby/iapi/types/DataValueFactory.java
M java/engine/org/apache/derby/catalog/SystemProcedures.java
M java/engine/org/apache/derby/catalog/types/BaseTypeIdImpl.java
M java/engine/org/apache/derby/catalog/types/TypesImplInstanceGetter.java
M java/testing/org/apache/derbyTesting/unitTests/store/T_AccessRow.java
> 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: 10.2.1.6
> Reporter: Francois Orsini
> Assignee: Rick Hillegas
> Attachments: Derby_User_Enhancement.html,
> Derby_User_Enhancement_v1.1.html, DummyAuthenticator.java,
> UserManagement.html, UserManagement.html, UserManagement.html,
> UserManagement.html, derby-866-01-aa-sysusers.diff,
> derby-866-01-ab-sysusers.diff, derby-866-02-ag-createDropUser.diff,
> derby-866-03-aa-resetModifyPassword.diff,
> derby-866-03-ab-resetModifyPassword.diff, derby-866-04-aa-fixRolesTest.diff,
> derby-866-05-aa-grantRevoke.diff, derby-866-06-aa-upgradeFrom10.1.diff,
> derby-866-07-aa-removeSQLPassword.diff, 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
> 10.1.2.1), 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