KB-1084 "Error executing SQL <SQL>... java.sql.SQLException: ORA-12988: cannot drop column from table owned by SYS" error thrown during application server startup

Symptoms

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.

Cause

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.

Action

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.

Affected Versions

This article applies to all Appian versions using Oracle as a database.

Last Reviewed: February 2017

Related
Recommended