Oracle: are objects created by sys in a schema the same as objects created by that user? For example, are there any differences between:

SCOTT@ORCL&gt; create index a_idx on a(x);


and

SYS@ORCL&gt; create index scott.a.idx on scott.a(x);
Apart form all the DOs and DONTs about using SYS in this case is  that "if you connect as sysdba, your schema name will appear to be SYS".

Phil's answer demonstrates it. A nice quote by Thomas Kyte on a similar question -


  In general, unless the documentation tells you, you will NEVER LOG IN
  as sys or system, they are our internal data dictionary accounts and
  not for your use. You will be best served by forgetting they exist. 
  
  sysdba and sysoper are ROLES - they are not users, not schemas. The
  SYSDBA role is like "root" on unix or "Administrator" on Windows. It
  sees all, can do all. Internally, if you connect as sysdba, your
  schema name will appear to be SYS. 
  
  In real life, you hardly EVER need sysdba - typically only during an
  upgrade or patch.


We keep saying the following so many times -


  
  Never ever use SYS (or SYSDBA) but for maintenance purpose (startup, shutdown, backup, recover) 
  SYS/SYSDBA is special 
  SYS/SYSDBA is Oracle proprietary (try to open a SR/TAR starting with "i did that with SYS/SYSDBA" and you'll see the immediate answer) 
  SYS/SYSDBA does not act like any other user 
  When you use SYS/SYSDBA Oracle deactivates some code path and activates others 
  Whatever you do with SYS/SYSDBA will neither validate nor invalidate the same thing with any other user. 
  
  
  NEVER EVER use SYS/SYSDBA for anything that can be done by another
  user.  Use SYS/SYSDBA ONLY for something that can't be done by someone
  else.


You might also like to read this.