When starting the application server with a new Oracle database, the following message can be seen in the server logs:
ERROR liquibase - Error executing SQL ALTER TABLE rm_entry DROP COLUMN role_name
java.sql.SQLException: ORA-12988: cannot drop column from table owned by SYS
Caused by: java.sql.SQLException: ORA-12988: cannot drop column from table owned by SYS
The application server then fails to start.
The database was created by the SYS user, which is not recommended by Oracle, while the user set up in the configuration files is different than SYS.
Creating databases with the SYS user is not recommended because tables in the SYS schema are system tables manipulated only by the database. As an internal user created for database administration, the schema should not be used for access by most other users. In addition, tables created by the SYS user can not be modified by other users who do not have system privileges.
More information on system users can be found on the following Oracle site - User Information.
If this is a new database, create a new user with administrator rights and recreate the database as that new user instead of the SYS user.
If the database already has content and that it is not possible to manually import it to a new database, then system privileges can be granted to a user. However, system privileges should be granted with extreme care as the integrity of the system can be compromised by a misuse. More information on how to do so can be found on the following Oracle site - Configuring Privileges.
This article applies to all Appian versions using Oracle as a database.
Last Reviewed: February 2017
© 2020 Appian. All rights reserved.