summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connectivity/source/drivers/hsqldb/HUser.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/connectivity/source/drivers/hsqldb/HUser.cxx b/connectivity/source/drivers/hsqldb/HUser.cxx
index 0dfcd2cefa30..e1c2a757d64a 100644
--- a/connectivity/source/drivers/hsqldb/HUser.cxx
+++ b/connectivity/source/drivers/hsqldb/HUser.cxx
@@ -272,10 +272,13 @@ void SAL_CALL OHSQLUser::changePassword( const OUString& /*oldPassword*/, const
Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
- OUString sAlterPwd = "SET PASSWORD FOR " +
- ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), m_Name) +
- "@\"%\" = PASSWORD('" + newPassword + "')";
+ if( m_Name != xMeta->getUserName() )
+ {
+ ::dbtools::throwGenericSQLException("HSQLDB can only change password of the current user.", *this);
+ }
+ OUString sAlterPwd = "SET PASSWORD " +
+ ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), newPassword);
Reference<XStatement> xStmt = m_xConnection->createStatement();
if ( xStmt.is() )