web-dev-qa-db-fra.com

Quelle est la différence entre sys et comptes système dans les bases de données Oracle?

Il existe deux façons de se connecter à Oracle en tant qu'administrateur à l'aide de sqlplus:

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

Ces comptes devraient être utilisés à des fins différentes, je suppose.

À quelles tâches ces deux schémas sont-ils destinés? Quand devrais-je utiliser l'un ou l'autre d'entre eux?

40
Lazer

SYS

  • Créé automatiquement lors de l'installation de la base de données Oracle
  • Accordé automatiquement le rôle DBA
  • A un mot de passe par défaut: CHANGE_ON_INSTALL (assurez-vous de le changer)
  • Possède les tables de base et les vues du dictionnaire de données de base de données
  • Le schéma par défaut lorsque vous vous connectez en tant que SYSDBA

Les tables du schéma SYS ne sont manipulées que par la base de données. Ils ne doivent jamais être modifiés par un utilisateur ou un administrateur de base de données, et personne ne doit créer de tables dans le schéma de l'utilisateur SYS. Les utilisateurs de la base de données ne doivent pas se connecter à la base de données Oracle à l'aide du compte SYS.

SYSTEM

  • Créé automatiquement lors de l'installation de la base de données Oracle
  • Accordé automatiquement le rôle DBA
  • A un mot de passe par défaut: MANAGER (assurez-vous de le changer)
  • Utilisé pour créer des tables et des vues supplémentaires qui affichent des informations administratives
  • Utilisé pour créer des tables et des vues internes utilisées par divers outils et options de base de données Oracle

N'utilisez jamais le schéma SYSTEM pour stocker des tables d'intérêt pour les utilisateurs non administratifs.

/ via

43
Eddie Awad

De la Documentation Oracle 11g :

Utilisateurs SYS ET SYSTEM

Les comptes d'utilisateurs administratifs suivants sont créés automatiquement lorsque vous installez Oracle Database. Ils sont tous deux créés avec le mot de passe que vous avez fourni lors de l'installation, et ils se voient automatiquement attribuer le rôle DBA.

  • SYS

    Ce compte peut exécuter toutes les fonctions administratives. Toutes les tables et vues de base (sous-jacentes) du dictionnaire de données de base de données sont stockées dans le schéma SYS. Ces tables et vues de base sont essentielles au fonctionnement d'Oracle Database. Pour maintenir l'intégrité du dictionnaire de données, les tables du schéma SYS sont manipulées uniquement par la base de données. Ils ne doivent jamais être modifiés par un utilisateur ou un administrateur de base de données. Vous ne devez créer aucune table dans le schéma SYS.

    L'utilisateur SYS bénéficie du privilège SYSDBA, qui lui permet d'effectuer des tâches administratives de haut niveau telles que la sauvegarde et la récupération.

  • SYSTEM

    Ce compte peut exécuter toutes les fonctions administratives à l'exception des suivantes:

    • Sauvegarde et récupération

    • Mise à niveau de la base de données

    Bien que ce compte puisse être utilisé pour effectuer des tâches administratives quotidiennes, Oracle recommande vivement de créer un compte d'utilisateurs nommés pour administrer la base de données Oracle afin de permettre la surveillance de l'activité de la base de données.

Privilèges système SYSDBA et SYSOPER

SYSDBA et SYSOPER sont des privilèges administratifs requis pour effectuer des opérations administratives de haut niveau telles que la création, le démarrage, l'arrêt, la sauvegarde ou la récupération de la base de données. Le privilège système SYSDBA est destiné aux administrateurs de bases de données pleinement habilités et le privilège système SYSOPER permet à un utilisateur d'effectuer des tâches opérationnelles de base, mais sans pouvoir consulter les données utilisateur.

Les privilèges système SYSDBA et SYSOPER permettent d'accéder à une instance de base de données même lorsque la base de données n'est pas ouverte. Le contrôle de ces privilèges est donc complètement en dehors de la base de données elle-même. Ce contrôle permet à un administrateur disposant de l'un de ces privilèges de se connecter à l'instance de base de données pour démarrer la base de données.

Vous pouvez également considérer les privilèges SYSDBA et SYSOPER comme des types de connexions qui vous permettent d'effectuer certaines opérations de base de données pour lesquelles des privilèges ne peuvent être accordés d'aucune autre manière. Par exemple, si vous disposez du privilège SYSDBA, vous pouvez vous connecter à la base de données à l'aide d'AS SYSDBA.

L'utilisateur SYS obtient automatiquement le privilège SYSDBA lors de l'installation. Lorsque vous vous connectez en tant qu'utilisateur SYS, vous devez vous connecter à la base de données en tant que SYSDBA ou SYSOPER. La connexion en tant qu'utilisateur SYSDBA appelle le privilège SYSDBA; la connexion en tant que SYSOPER invoque le privilège SYSOPER. Oracle Enterprise Manager Database Control ne vous permet pas de vous connecter en tant qu'utilisateur SYS sans vous connecter en tant que SYSDBA ou SYSOPER.

Lorsque vous vous connectez avec le privilège SYSDBA ou SYSOPER, vous vous connectez avec un schéma par défaut, pas avec le schéma généralement associé à votre nom d'utilisateur. Pour SYSDBA, ce schéma est SYS; pour SYSOPER, le schéma est PUBLIC.

21
Leigh Riffel

Un exemple d'une différence majeure entre SYS (ou toute autre connexion SYSDBA) et tous les autres utilisateurs: SYS ne peut pas faire une lecture cohérente . Une implication de ceci (il y en a d'autres) est que vous ne pouvez pas faire une exportation CONSISTENT = Y en tant que SYS en utilisant l'ancien utilitaire exp.

L'employé et expert d'Oracle, Tom Kyte, est d'avis que vous devriez rarement utiliser l'un ou l'autre . Concernant SYS, il souligne que cela fonctionne différemment comme l'indique l'exemple ci-dessus, mais plus généralement il les considère comme "appartenant" à Oracle Corporation. Si vous apportez une modification ou ajoutez quelque chose dans l'un ou l'autre schéma et qu'un problème se produit (par exemple, une mise à niveau de la base de données échoue), je pense que la réponse du support Oracle serait: "Vous n'auriez pas dû faire cela."

9
Stephen Kendall

Cela ressemble à si l'affiche dit qu'il n'y a que deux façons de se connecter:

"Il existe deux façons de se connecter à Oracle en tant qu'administrateur à l'aide de sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Un compte administrateur est un compte utilisateur Oracle doté du privilège SYSDBA ou du rôle DBA. SYS est un utilisateur prédéfini avec SYSDBA et SYSTEM est un utilisateur prédéfini avec DBA. S'il y a n comptes d'administrateur dans une base de données, alors il y a n utilisateurs qui peuvent se connecter avec des privilèges d'administrateur (par définition) - il n'y en a pas seulement deux.

Un autre point concerne SQL * Plus. Vous pouvez vous connecter en tant que SYS à l'aide de l'authentification du système d'exploitation à l'invite du système d'exploitation: sqlplus/as sysdba. Vous pouvez également démarrer SQL * Plus, puis CONNECT/AS SYSDBA. Vous pouvez spécifier un mot de passe à l'invite du système d'exploitation, dans une instruction CONNECT, ou demander à SQL * Plus de vous le demander. Vous pouvez utiliser un nom de service net. Vous pouvez (et devez) modifier le mot de passe SYSTEM. Etc.

Ce que l'affiche voulait dire, je pense, c'est qu'il y a au moins deux comptes d'administrateur dans une base de données Oracle, et si SYSTEM a le mot de passe par défaut, et si l'authentification du système d'exploitation est configurée, alors ce sont deux (parmi de nombreux) exemples de comment SYS et SYSTEM peuvent se connecter à la base de données à l'aide de SQL * Plus.

La question de la différence entre SYS et SYSTEM est différente et a été répondue.

0
Lance Ashdown