Qual é a diferença entre contas sys e sistema nos bancos de dados Oracle?


39

Há duas maneiras de se conectar ao Oracle como administrador usando o sqlplus:

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

Essas contas devem ser usadas para propósitos diferentes, suponho.

Para quais tarefas esses dois esquemas se destinam? Quando devo usar um ou outro entre eles?

Respostas:


43

SYS

  • Criada automaticamente quando o banco de dados Oracle está instalado
  • Concessão automática da DBAfunção
  • Possui uma senha padrão: CHANGE_ON_INSTALL (certifique-se de alterá-la)
  • Possui as tabelas e visualizações básicas do dicionário de dados do banco de dados
  • O esquema padrão quando você se conecta como SYSDBA

As tabelas no SYSesquema são manipuladas apenas pelo banco de dados. Eles nunca devem ser modificados por nenhum usuário ou administrador de banco de dados e ninguém deve criar nenhuma tabela no esquema do usuário SYS. Os usuários do banco de dados não devem se conectar ao banco de dados Oracle usando a SYSconta.

SYSTEM

  • Criada automaticamente quando o banco de dados Oracle está instalado
  • Concessão automática da DBAfunção
  • Possui uma senha padrão: MANAGER (certifique-se de alterá-la)
  • Usado para criar tabelas e visualizações adicionais que exibem informações administrativas
  • Usado para criar tabelas e visualizações internas usadas por várias opções e ferramentas do banco de dados Oracle

Nunca use o SYSTEMesquema para armazenar tabelas de interesse para usuários não administrativos.

/através da


19
Na prática, todo DBA trabalha sqlplus / as sysdbano dia-a-dia - em 15 anos trabalhando com dezenas de DBAs experientes, nunca encontrei alguém que se incomodasse com a SYSTEMconta.
Gaius

21

Na documentação Oracle 11g :

Usuários de SYS AND SYSTEM

As seguintes contas de usuário administrativo são criadas automaticamente quando você instala o Oracle Database. Ambos são criados com a senha que você forneceu na instalação e ambos recebem automaticamente a função DBA.

  • SYS

    Esta conta pode executar todas as funções administrativas. Todas as tabelas e visualizações básicas (subjacentes) do dicionário de dados do banco de dados são armazenadas no esquema SYS. Essas tabelas e visualizações básicas são críticas para a operação do Oracle Database. Para manter a integridade do dicionário de dados, as tabelas no esquema SYS são manipuladas apenas pelo banco de dados. Eles nunca devem ser modificados por nenhum usuário ou administrador de banco de dados. Você não deve criar nenhuma tabela no esquema SYS.

    O usuário do SYS recebe o privilégio SYSDBA, que permite ao usuário executar tarefas administrativas de alto nível, como backup e recuperação.

  • SYSTEM

    Esta conta pode executar todas as funções administrativas, exceto o seguinte:

    • Restaurar e recuperar

    • Atualização do banco de dados

    Embora essa conta possa ser usada para executar tarefas administrativas diárias, a Oracle recomenda vivamente a criação de uma conta de usuário nomeado para administrar o banco de dados Oracle para permitir o monitoramento da atividade do banco de dados.

Privilégios do sistema SYSDBA e SYSOPER

SYSDBA e SYSOPER são privilégios administrativos necessários para executar operações administrativas de alto nível, como criar, inicializar, encerrar, fazer backup ou recuperar o banco de dados. O privilégio do sistema SYSDBA é para administradores de banco de dados totalmente habilitados e o privilégio do sistema SYSOPER permite que um usuário execute tarefas operacionais básicas, mas sem a capacidade de examinar os dados do usuário.

Os privilégios de sistema SYSDBA e SYSOPER permitem acesso a uma instância de banco de dados, mesmo quando o banco de dados não está aberto. O controle desses privilégios está, portanto, completamente fora do próprio banco de dados. Esse controle permite que um administrador que tenha um desses privilégios se conecte à instância do banco de dados para iniciar o banco de dados.

Você também pode pensar nos privilégios SYSDBA e SYSOPER como tipos de conexões que permitem executar determinadas operações do banco de dados para as quais os privilégios não podem ser concedidos de nenhuma outra maneira. Por exemplo, se você tiver o privilégio SYSDBA, poderá conectar-se ao banco de dados usando o AS SYSDBA.

O usuário SYS recebe automaticamente o privilégio SYSDBA na instalação. Ao efetuar login como usuário SYS, você deve se conectar ao banco de dados como SYSDBA ou SYSOPER. A conexão como um usuário SYSDBA chama o privilégio SYSDBA; conectar-se como SYSOPER chama o privilégio SYSOPER. O Oracle Enterprise Manager Database Control não permite que você efetue login como usuário SYS sem conectar-se como SYSDBA ou SYSOPER.

Ao se conectar ao privilégio SYSDBA ou SYSOPER, você se conecta a um esquema padrão, não ao esquema geralmente associado ao seu nome de usuário. Para SYSDBA, esse esquema é SYS; para SYSOPER, o esquema é PUBLIC.


8

Um exemplo de uma grande diferença entre o SYS (ou qualquer outra conexão SYSDBA) e qualquer outro usuário: O SYS não pode fazer uma leitura consistente . Uma implicação disso (existem outras) é que você não pode fazer uma exportação CONSISTENT = Y como SYS usando o antigo utilitário exp.

O funcionário e especialista da Oracle, Tom Kyte, é da opinião de que você raramente deve usar qualquer um deles . Em relação ao SYS, ele ressalta que ele funciona de maneira diferente, como o exemplo acima indica, mas, em geral, ele os considera "de propriedade" da Oracle Corporation. Se você fizer uma alteração ou adicionar algo no esquema e ocorrer um problema (por exemplo, uma atualização do banco de dados falhar), suspeito que a resposta do Suporte Oracle seria: "Você não deveria ter feito isso".


0

Parece que o pôster está dizendo que existem apenas duas maneiras de se conectar:

"Existem duas maneiras de se conectar ao Oracle como administrador usando o sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Uma conta de administrador é qualquer conta de usuário Oracle com o privilégio SYSDBA ou a função DBA. SYS é um usuário predefinido com SYSDBA e SYSTEM é um usuário predefinido com DBA. Se houver n contas de administrador em um banco de dados, não há usuários que possam se conectar com privilégios de administrador (por definição) - não há apenas duas delas.

Outro ponto diz respeito ao SQL * Plus. Você pode se conectar como SYS usando a autenticação do SO no prompt do SO: sqlplus / as sysdba. Você também pode iniciar o SQL * Plus e, em seguida, CONNECT / AS SYSDBA. Você pode especificar uma senha no prompt do SO, em uma instrução CONNECT, ou solicitar que o SQL * Plus solicite. Você pode usar um nome de serviço de rede. Você pode (e deve) alterar a senha do sistema. E assim por diante.

O que o pôster pretendia dizer é que existem pelo menos duas contas de administrador em um banco de dados Oracle, e se SYSTEM tiver a senha padrão e se a autenticação do SO estiver configurada, esses são dois (de muitos) exemplos de como o SYS e o SYSTEM podem efetuar login no banco de dados usando o SQL * Plus.

A questão da diferença entre SYS e SYSTEM é diferente e foi respondida.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.