¿Cuál es la diferencia entre sys y cuentas del sistema en bases de datos Oracle?

39

Hay dos formas de conectarse a Oracle como administrador utilizando sqlplus:

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

Estas cuentas deberían usarse para diferentes propósitos, supongo.

¿Para qué tareas están destinados estos dos esquemas? ¿Cuándo debo usar uno u otro entre ellos?

Lazer
fuente

Respuestas:

43

SYS

  • Creado automáticamente cuando se instala la base de datos Oracle
  • Se le otorga automáticamente el DBArol
  • Tiene una contraseña predeterminada: CHANGE_ON_INSTALL (asegúrese de cambiarla)
  • Posee las tablas y vistas base para el diccionario de datos de la base de datos.
  • El esquema predeterminado cuando se conecta como SYSDBA

Las tablas en el SYSesquema son manipuladas solo por la base de datos. Nunca debe ser modificado por ningún usuario o administrador de la base de datos, y nadie debe crear ninguna tabla en el esquema del usuario SYS. Los usuarios de la base de datos no deben conectarse a la base de datos Oracle utilizando la SYScuenta.

SYSTEM

  • Creado automáticamente cuando se instala la base de datos Oracle
  • Se le otorga automáticamente el DBArol
  • Tiene una contraseña predeterminada: MANAGER (asegúrese de cambiarla)
  • Se usa para crear tablas y vistas adicionales que muestran información administrativa
  • Se utiliza para crear tablas y vistas internas utilizadas por diversas opciones y herramientas de bases de datos Oracle

Nunca use el SYSTEMesquema para almacenar tablas de interés para usuarios no administrativos.

/vía

Eddie Awad
fuente
19
En la práctica, cada DBA lo hace sqlplus / as sysdbapara el trabajo diario: en 15 años trabajando con docenas de DBA con experiencia, nunca me he encontrado con nadie que se moleste con la SYSTEMcuenta.
Gaius
21

De la documentación de Oracle 11g :

Usuarios de SYS Y SYSTEM

Las siguientes cuentas de usuario administrativas se crean automáticamente cuando instala Oracle Database. Ambos se crean con la contraseña que proporcionó en la instalación, y a ambos se les otorga automáticamente el rol de DBA.

  • SYS

    Esta cuenta puede realizar todas las funciones administrativas. Todas las tablas y vistas básicas (subyacentes) para el diccionario de datos de la base de datos se almacenan en el esquema SYS. Estas tablas y vistas base son críticas para el funcionamiento de Oracle Database. Para mantener la integridad del diccionario de datos, las tablas en el esquema SYS son manipuladas solo por la base de datos. Nunca deben ser modificados por ningún usuario o administrador de la base de datos. No debe crear ninguna tabla en el esquema SYS.

    Al usuario SYS se le concede el privilegio SYSDBA, que le permite al usuario realizar tareas administrativas de alto nivel, como copias de seguridad y recuperación.

  • SYSTEM

    Esta cuenta puede realizar todas las funciones administrativas, excepto las siguientes:

    • Copia de seguridad y recuperación

    • Actualización de base de datos

    Si bien esta cuenta se puede utilizar para realizar tareas administrativas diarias, Oracle recomienda crear una cuenta de usuarios con nombre para administrar la base de datos Oracle para permitir el monitoreo de la actividad de la base de datos.

Privilegios del sistema SYSDBA y SYSOPER

SYSDBA y SYSOPER son privilegios administrativos necesarios para realizar operaciones administrativas de alto nivel, como crear, iniciar, cerrar, realizar copias de seguridad o recuperar la base de datos. El privilegio del sistema SYSDBA es para administradores de bases de datos totalmente capacitados y el privilegio del sistema SYSOPER permite al usuario realizar tareas operativas básicas, pero sin la capacidad de ver los datos del usuario.

Los privilegios del sistema SYSDBA y SYSOPER permiten el acceso a una instancia de base de datos incluso cuando la base de datos no está abierta. Por lo tanto, el control de estos privilegios está completamente fuera de la base de datos. Este control permite que un administrador al que se le otorgue uno de estos privilegios se conecte a la instancia de la base de datos para iniciar la base de datos.

También puede pensar en los privilegios SYSDBA y SYSOPER como tipos de conexiones que le permiten realizar ciertas operaciones de base de datos para las cuales no se pueden otorgar privilegios de ninguna otra manera. Por ejemplo, si tiene el privilegio SYSDBA, puede conectarse a la base de datos utilizando AS SYSDBA.

Al usuario SYS se le otorga automáticamente el privilegio SYSDBA tras la instalación. Cuando inicia sesión como usuario SYS, debe conectarse a la base de datos como SYSDBA o SYSOPER. Conectarse como usuario SYSDBA invoca el privilegio SYSDBA; conectarse como SYSOPER invoca el privilegio SYSOPER. Oracle Enterprise Manager Database Control no le permite iniciar sesión como usuario SYS sin conectarse como SYSDBA o SYSOPER.

Cuando se conecta con el privilegio SYSDBA o SYSOPER, se conecta con un esquema predeterminado, no con el esquema que generalmente está asociado con su nombre de usuario. Para SYSDBA este esquema es SYS; para SYSOPER el esquema es PUBLIC.

Leigh Riffel
fuente
8

Un ejemplo de una diferencia importante entre SYS (o cualquier otra conexión SYSDBA) y cualquier otro usuario: SYS no puede hacer una lectura consistente . Una implicación de esto (hay otras) es que no puede hacer una exportación CONSISTENTE = Y como SYS utilizando la antigua utilidad exp.

El empleado y experto de Oracle, Tom Kyte, es de la opinión de que rara vez debería usar cualquiera de ellos . Con respecto a SYS, señala que funciona de manera diferente como lo indica el ejemplo anterior, pero en general los considera "propiedad" de Oracle Corporation. Si realiza un cambio o agrega algo en cualquiera de los esquemas y se produce un problema (por ejemplo, una actualización de la base de datos falla), sospecho que la respuesta de Oracle Support sería: "No debería haber hecho eso".

Stephen Kendall
fuente
0

Esto suena como si el póster dijera que solo hay dos formas de conectarse:

"Hay dos formas de conectarse a Oracle como administrador usando sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Una cuenta de administrador es cualquier cuenta de usuario de Oracle con el privilegio SYSDBA o la función DBA. SYS es un usuario predefinido con SYSDBA, y SYSTEM es un usuario predefinido con DBA. Si hay n cuentas de administrador en una base de datos, entonces hay n usuarios que pueden conectarse con privilegios de administrador (por definición); no hay solo dos de ellos.

Otro punto se refiere a SQL * Plus. Puede conectarse como SYS utilizando la autenticación del sistema operativo en el indicador del sistema operativo: sqlplus / as sysdba. También puede iniciar SQL * Plus y luego CONNECT / AS SYSDBA. Puede especificar una contraseña en el indicador del sistema operativo, en una instrucción CONNECT, o hacer que SQL * Plus le solicite. Puede usar un nombre de servicio neto. Puede (y debe) cambiar la contraseña del SISTEMA. Y así.

Lo que el cartel quería decir, creo, es que hay al menos dos cuentas de administrador en una base de datos Oracle, y si SYSTEM tiene la contraseña predeterminada y si la autenticación del sistema operativo está configurada, estos son dos (de muchos) ejemplos de cómo SYS y SYSTEM pueden iniciar sesión en la base de datos utilizando SQL * Plus.

La cuestión de la diferencia entre SYS y SYSTEM es diferente y ha sido respondida.

Lance Ashdown
fuente