お客様によっては、Liferayプラットフォームを使用して、CREATE、ALTER、DROPなどのテーブル構造を変更する権限を持たないユーザーとしてデータベースに接続することを強制するセキュリティポリシーがあることを理解しています。
弊社が提供するプラグインやHotfixでは、問題解決のためにデータベースの更新が必要な場合があります。 Liferay Portalのフルアップグレードとは異なり、データベースのアップデートがあることは明白に予想されません。 そのため、データベースの更新が必要な新しいプラグイン/Hotfixを適用すると、例えばデータベースパーミッションエラーが発生します:
code>08:41:36,858 WARN [ServerServiceThread Pool -- 140][BaseDB:457] ORA-01031: insufficient privileges: create table Marketplace_App (uuid_ VARCHAR2(75 CHAR) null,appId number(30,0) not null primary key,companyId number(30,0),userId number(30,0),userName VARCHAR2(75 CHAR) null,createDate timestamp null,modifiedDate timestamp null,remoteAppId number(30,0),title VARCHAR2(75 CHAR) null,description varchar2(4000) null,category VARCHAR2(75 CHAR) null,iconURL varchar2(4000) null,version VARCHAR2(75 CHAR) null); 08:41:36,874 WARN [ServerServiceThread Pool -- 140][BaseDB:457] ORA-01031: insufficient privileges: create table Marketplace_Module (uuid_ VARCHAR2(75 CHAR) null,moduleId number(30,0) not null primary key,appId number(30,0),bundleSymbolicName VARCHAR2(500 CHAR) null,bundleVersion VARCHAR2(75 CHAR) null,contextName VARCHAR2(75 CHAR) null);
データベースの構造が複雑で、データが変更される可能性があるため、当社のパッチ適用プロセスでは、生のSQLスクリプトを修正プログラムとともに提供することはできません。
環境
- Liferay Portal 6.x
解決策
メンテナンスウィンドウを探す
- アプリケーションサーバーを設定する(Ex. Tomcat)で、CREATE/ALTER/DROPの権限を持つ特権ユーザーとしてデータベースに接続します。
- Liferay プラットフォームを起動し、アップデートを開始します。
- セキュアードユーザーに切り替わる。