it-swarm.it

Qual è la differenza tra account di sistema e di sistema nei database Oracle?

Esistono due modi per connettersi a Oracle come amministratore utilizzando sqlplus:

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

Questi account dovrebbero essere usati per scopi diversi, suppongo.

A quali compiti sono destinati questi due schemi? Quando dovrei usare l'uno o l'altro tra loro?

40
Lazer

SYS

  • Creato automaticamente quando è installato il database Oracle
  • Concesso automaticamente il ruolo DBA
  • Ha una password predefinita: CHANGE_ON_INSTALL (assicurati di cambiarlo)
  • Possiede le tabelle e le viste di base per il dizionario dei dati del database
  • Lo schema predefinito quando ci si connette come SYSDBA

Le tabelle nello schema SYS sono manipolate solo dal database. Non dovrebbero mai essere modificati da alcun utente o amministratore del database e nessuno dovrebbe creare alcuna tabella nello schema dell'utente SYS. Gli utenti del database non devono connettersi al database Oracle utilizzando l'account SYS.

SYSTEM

  • Creato automaticamente quando è installato il database Oracle
  • Concesso automaticamente il ruolo DBA
  • Ha una password predefinita: MANAGER (assicurati di cambiarla)
  • Utilizzato per creare tabelle e viste aggiuntive che visualizzano informazioni amministrative
  • Utilizzato per creare tabelle e viste interne utilizzate da vari strumenti e opzioni del database Oracle

Non utilizzare mai lo schema SYSTEM per archiviare le tabelle di interesse per utenti non amministrativi.

/ via

43
Eddie Awad

Dalla 11g Documentazione Oracle :

Utenti SYS E SYSTEM

I seguenti account utente amministrativi vengono creati automaticamente quando si installa Oracle Database. Entrambi sono creati con la password che hai fornito al momento dell'installazione ed entrambi hanno automaticamente il ruolo DBA.

  • SYS

    Questo account può eseguire tutte le funzioni amministrative. Tutte le tabelle e le viste di base (sottostanti) per il dizionario dei dati del database sono memorizzate nello schema SYS. Queste tabelle e viste di base sono fondamentali per il funzionamento di Oracle Database. Per mantenere l'integrità del dizionario dei dati, le tabelle nello schema SYS sono manipolate solo dal database. Non devono mai essere modificati da alcun utente o amministratore del database. Non è necessario creare alcuna tabella nello schema SYS.

    All'utente SYS viene concesso il privilegio SYSDBA, che consente a un utente di eseguire attività amministrative di alto livello come backup e ripristino.

  • SYSTEM

    Questo account può eseguire tutte le funzioni amministrative tranne le seguenti:

    • Backup e ripristino

    • Aggiornamento del database

    Sebbene questo account possa essere utilizzato per eseguire attività amministrative quotidiane, Oracle consiglia vivamente di creare un account con nome utente per amministrare il database Oracle e consentire il monitoraggio dell'attività del database.

Privilegi di sistema SYSDBA e SYSOPER

SYSDBA e SYSOPER sono privilegi amministrativi richiesti per eseguire operazioni amministrative di alto livello come la creazione, l'avvio, l'arresto, il backup o il ripristino del database. Il privilegio di sistema SYSDBA è per gli amministratori di database pienamente abilitati e il privilegio di sistema SYSOPER consente a un utente di eseguire attività operative di base, ma senza la possibilità di esaminare i dati dell'utente.

I privilegi di sistema SYSDBA e SYSOPER consentono l'accesso a un'istanza di database anche quando il database non è aperto. Il controllo di questi privilegi è quindi completamente al di fuori del database stesso. Questo controllo consente a un amministratore a cui è concesso uno di questi privilegi di connettersi all'istanza del database per avviare il database.

È inoltre possibile considerare i privilegi SYSDBA e SYSOPER come tipi di connessioni che consentono di eseguire determinate operazioni del database per le quali non è possibile concedere i privilegi in nessun altro modo. Ad esempio, se si dispone del privilegio SYSDBA, è possibile connettersi al database utilizzando AS SYSDBA.

All'utente SYS viene automaticamente concesso il privilegio SYSDBA al momento dell'installazione. Quando si accede come utente SYS, è necessario connettersi al database come SYSDBA o SYSOPER. La connessione come utente SYSDBA invoca il privilegio SYSDBA; la connessione come SYSOPER invoca il privilegio SYSOPER. Oracle Enterprise Manager Database Control non ti consente di accedere come SYS utente senza collegarti come SYSDBA o SYSOPER.

Quando ti connetti con il privilegio SYSDBA o SYSOPER, ti connetti con uno schema predefinito, non con lo schema generalmente associato al tuo nome utente. Per SYSDBA questo schema è SYS; per SYSOPER lo schema è PUBBLICO.

21
Leigh Riffel

Un esempio di una grande differenza tra SYS (o qualsiasi altra connessione SYSDBA) e ogni altro utente: SYS non può fare letture coerenti . Una conseguenza di ciò (ce ne sono altri) è che non puoi fare un'esportazione CONSISTENTE = Y come SYS usando la vecchia utility exp.

Tom Kyte, dipendente ed esperto Oracle, è dell'opinione che raramente dovresti mai usare uno dei due . Per quanto riguarda SYS, sottolinea che funziona diversamente come indica l'esempio sopra, ma più in generale li considera "di proprietà" di Oracle Corporation. Se apporti una modifica o aggiungi qualcosa in uno dei due schemi e si verifica un problema (ad es. Un aggiornamento del database non riesce), sospetto che la risposta del supporto Oracle sarebbe: "Non avresti dovuto farlo".

9
Stephen Kendall

Sembra che il poster stia dicendo che ci sono solo due modi per connettersi:

"Esistono due modi per connettersi a Oracle come amministratore utilizzando sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Un account amministratore è qualsiasi account utente Oracle con privilegio SYSDBA o ruolo DBA. SYS è un utente predefinito con SYSDBA e SYSTEM è un utente predefinito con DBA. Se in un database ci sono n account account, allora ci sono n utenti che possono connettersi con i privilegi di amministratore (per definizione) - non ce ne sono solo due.

Un altro punto riguarda SQL * Plus. È possibile connettersi come SYS utilizzando l'autenticazione del sistema operativo al prompt del sistema operativo: sqlplus/as sysdba. È inoltre possibile avviare SQL * Plus e quindi CONNECT/AS SYSDBA. È possibile specificare una password al prompt del sistema operativo, in un'istruzione CONNECT, oppure richiedere a SQL * Plus di richiederlo. È possibile utilizzare un nome di servizio di rete. Puoi (e dovresti) cambiare la password di SISTEMA. E così via.

Ciò che il poster intendeva dire, penso, è che ci sono almeno due account amministratore in un database Oracle e se SYSTEM ha la password predefinita e se è impostata l'autenticazione del sistema operativo, questi sono due (di molti) esempi di come SYS e SYSTEM possono accedere al database usando SQL * Plus.

La domanda sulla differenza tra SYS e SYSTEM è diversa ed è stata risolta.

0
Lance Ashdown