What's the difference between the Oracle SYS and SYSTEM accounts?

Hooloovoo picture Hooloovoo · May 27, 2009 · Viewed 25k times · Source

What are the differences between the Oracle SYS and SYSTEM built in accounts?

Edit: Apart from 3 letters!

Answer

Thomas Jones-Low picture Thomas Jones-Low · May 27, 2009

SYS owns the oracle data dictionary. Every object in the database (tables, views, packages, procedures, etc. ) all have a single owner. For the database dictionary, and a whole lot of special tables (performance views and the like) are all owned by the SYS user.

The SYSTEM user is supposed to be the master DBA user, with access to all of these object. This reflects an early, and long time, Oracle security design philosophy. You build the application using one user, then create a second with access (select, update, delete) but not drop privileges. This gives you a "super-user" access to your schema without being able to destroy it accidentally. Over the years, thing have been added to the SYSTEM account that may have needed to be in the SYS account. But very few people want to give out access to their SYS account if they don't have to.