it-swarm.dev

Jaka jest różnica między kontami systemowymi i systemowymi w bazach danych Oracle?

Istnieją dwa sposoby połączenia się z Oracle jako administrator za pomocą narzędzia sqlplus:

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

Sądzę, że te konta powinny być wykorzystywane do różnych celów.

Do jakich zadań przeznaczone są te dwa schematy? Kiedy powinienem użyć jednego z nich?

40
Lazer

SYS

  • Automatycznie tworzone po zainstalowaniu bazy danych Oracle
  • Automatycznie przyznano rolę DBA
  • Ma domyślne hasło: CHANGE_ON_INSTALL (pamiętaj, aby go zmienić)
  • Jest właścicielem tabel podstawowych i widoków słownika danych bazy danych
  • Domyślny schemat podczas łączenia jako SYSDBA

Tabele w schemacie SYS są obsługiwane tylko przez bazę danych. Nigdy nie powinny być modyfikowane przez żadnego użytkownika lub administratora bazy danych i nikt nie powinien tworzyć żadnych tabel w schemacie użytkownika SYS. Użytkownicy bazy danych nie powinni łączyć się z bazą danych Oracle przy użyciu konta SYS.

SYSTEM

  • Automatycznie tworzone po zainstalowaniu bazy danych Oracle
  • Automatycznie przyznano rolę DBA
  • Ma domyślne hasło: MANAGER (upewnij się, że je zmienisz)
  • Służy do tworzenia dodatkowych tabel i widoków wyświetlających informacje administracyjne
  • Służy do tworzenia wewnętrznych tabel i widoków używanych przez różne opcje i narzędzia bazy danych Oracle

Nigdy nie używaj schematu SYSTEM do przechowywania tabel interesujących użytkowników niebędących administratorami.

/ via

43
Eddie Awad

Z 11g dokumentacji Oracle :

SYS I SYSTEMY Użytkownicy

Następujące konta użytkowników administracyjnych są tworzone automatycznie podczas instalowania bazy danych Oracle. Oba są tworzone przy użyciu hasła podanego podczas instalacji i oba mają automatycznie przyznaną rolę DBA.

  • SYS

    To konto może wykonywać wszystkie funkcje administracyjne. Wszystkie podstawowe (podstawowe) tabele i widoki dla słownika danych bazy danych są przechowywane w schemacie SYS. Te tabele podstawowe i widoki mają kluczowe znaczenie dla działania bazy danych Oracle. Aby zachować integralność słownika danych, tabelami w schemacie SYS manipuluje tylko baza danych. Nigdy nie powinny być modyfikowane przez żadnego użytkownika lub administratora bazy danych. Nie wolno tworzyć żadnych tabel w schemacie SYS.

    Użytkownik SYS otrzymuje uprawnienie SYSDBA, które umożliwia mu wykonywanie zadań administracyjnych wysokiego poziomu, takich jak tworzenie kopii zapasowych i odzyskiwanie.

  • SYSTEM

    To konto może wykonywać wszystkie funkcje administracyjne z wyjątkiem następujących:

    • Kopii zapasowych i odzyskiwania

    • Aktualizacja bazy danych

    Chociaż tego konta można używać do wykonywania codziennych zadań administracyjnych, Oracle zdecydowanie zaleca utworzenie konta nazwanych użytkowników do administrowania bazą danych Oracle, aby umożliwić monitorowanie aktywności bazy danych.

SYSDBA i uprawnienia systemowe SYSOPER

SYSDBA i SYSOPER to uprawnienia administracyjne wymagane do wykonywania operacji administracyjnych wysokiego poziomu, takich jak tworzenie, uruchamianie, zamykanie, tworzenie kopii zapasowych lub odzyskiwanie bazy danych. Uprawnienie systemowe SYSDBA jest przeznaczone dla w pełni uprawnionych administratorów baz danych, a uprawnienie systemowe SYSOPER pozwala użytkownikowi wykonywać podstawowe zadania operacyjne, ale bez możliwości przeglądania danych użytkownika.

Uprawnienia systemowe SYSDBA i SYSOPER umożliwiają dostęp do instancji bazy danych, nawet gdy baza danych nie jest otwarta. Kontrola tych uprawnień jest zatem całkowicie poza samą bazą danych. Ta kontrola umożliwia administratorowi, któremu przyznano jedno z tych uprawnień, połączenie się z instancją bazy danych w celu uruchomienia bazy danych.

Można również myśleć o uprawnieniach SYSDBA i SYSOPER jako o typach połączeń, które umożliwiają wykonywanie określonych operacji na bazie danych, dla których uprawnień nie można przyznać w żaden inny sposób. Na przykład, jeśli masz uprawnienie SYSDBA, możesz połączyć się z bazą danych za pomocą AS SYSDBA.

Użytkownik SYS automatycznie otrzymuje uprawnienia SYSDBA podczas instalacji. Kiedy logujesz się jako użytkownik SYS, musisz połączyć się z bazą danych jako SYSDBA lub SYSOPER. Łączenie się jako użytkownik SYSDBA wywołuje uprawnienie SYSDBA; łączenie się, ponieważ SYSOPER wywołuje uprawnienie SYSOPER. Kontrola bazy danych Oracle Enterprise Manager nie zezwala na logowanie się jako SYS użytkownika bez połączenia jako SYSDBA lub SYSOPER.

Gdy łączysz się z uprawnieniami SYSDBA lub SYSOPER, łączysz się ze schematem domyślnym, a nie ze schematem ogólnie powiązanym z twoją nazwą użytkownika. W przypadku SYSDBA schemat ten to SYS; dla SYSOPERA schemat jest PUBLICZNY.

21
Leigh Riffel

Przykład dużej różnicy między SYS (lub dowolnym innym połączeniem SYSDBA) a każdym innym użytkownikiem: SYS nie może wykonać spójnego odczyt . Jedną z implikacji tego (istnieją inne) jest to, że nie można wykonać eksportu CONSISTENT = Y jako SYS przy użyciu starego narzędzia exp.

Pracownik i ekspert Oracle, Tom Kyte, jest zdania, że ​​ rzadko należy używać jednego z nich . W odniesieniu do SYS zwraca uwagę, że działa on inaczej, jak wskazuje powyższy przykład, ale bardziej ogólnie uważa, że ​​są one „własnością” Oracle Corporation. Jeśli wprowadzisz zmianę lub dodasz coś w jednym ze schematów i wystąpi problem (np. Aktualizacja bazy danych zakończy się niepowodzeniem), podejrzewam, że odpowiedź Oracle Support brzmiałaby: „Nie powinieneś tego robić”.

9
Stephen Kendall

Brzmi to tak, jakby plakat mówi, że istnieją tylko dwa sposoby połączenia:

„Istnieją dwa sposoby połączenia się z Oracle jako administrator za pomocą narzędzia sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Konto administratora to dowolne konto użytkownika Oracle z uprawnieniem SYSDBA lub rolą DBA. SYS jest predefiniowanym użytkownikiem z SYSDBA, a SYSTEM jest predefiniowanym użytkownikiem z DBA. Jeśli w bazie danych jest n kont administratorów, oznacza to, że n użytkowników może łączyć się z uprawnieniami administratora (z definicji) - nie ma ich tylko dwóch.

Kolejna kwestia dotyczy SQL * Plus. Możesz połączyć się jako SYS przy użyciu uwierzytelniania systemu operacyjnego w wierszu polecenia systemu: sqlplus/as sysdba. Możesz także uruchomić SQL * Plus, a następnie CONNECT/AS SYSDBA. Możesz podać hasło w wierszu polecenia systemu operacyjnego, w instrukcji CONNECT lub poprosić o zapytanie SQL * Plus. Możesz użyć nazwy usługi sieciowej. Możesz (i należy) zmienić hasło SYSTEMOWE. I tak dalej.

Myślę, że plakat miał powiedzieć, że w bazie danych Oracle są co najmniej dwa konta administratora, a jeśli SYSTEM ma domyślne hasło i jeśli skonfigurowano uwierzytelnianie systemu operacyjnego, to są to dwa (z wielu) przykładów jak SYS i SYSTEM mogą zalogować się do bazy danych za pomocą SQL * Plus.

Pytanie o różnicę między SYS i SYSTEM jest inne i zostało udzielone odpowiedzi.

0
Lance Ashdown