Apa perbedaan antara sistem dan akun sistem di basis data Oracle?

39

Ada dua cara untuk terhubung ke Oracle sebagai administrator menggunakan sqlplus:

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

Akun ini harus digunakan untuk tujuan yang berbeda, saya kira.

Tugas apa yang dimaksudkan oleh kedua skema ini? Kapan saya harus menggunakan satu atau yang lain di antara mereka?

Lazer
sumber

Jawaban:

43

SYS

  • Secara otomatis dibuat ketika database Oracle diinstal
  • Secara otomatis diberikan DBAperan
  • Memiliki kata sandi default: CHANGE_ON_INSTALL (pastikan Anda mengubahnya)
  • Memiliki tabel dasar dan tampilan untuk kamus data database
  • Skema default saat Anda terhubung sebagai SYSDBA

Tabel dalam SYSskema hanya dimanipulasi oleh database. Mereka tidak boleh dimodifikasi oleh pengguna atau administrator basis data apa pun, dan tidak seorang pun boleh membuat tabel apa pun dalam skema pengguna SYS. Pengguna basis data tidak boleh terhubung ke database Oracle menggunakan SYSakun.

SYSTEM

  • Secara otomatis dibuat ketika database Oracle diinstal
  • Secara otomatis diberikan DBAperan
  • Memiliki kata sandi default: MANAGER (pastikan Anda mengubahnya)
  • Digunakan untuk membuat tabel dan tampilan tambahan yang menampilkan informasi administratif
  • Digunakan untuk membuat tabel dan tampilan internal yang digunakan oleh berbagai opsi dan alat basis data Oracle

Jangan pernah menggunakan SYSTEMskema untuk menyimpan tabel yang menarik bagi pengguna non-administratif.

/melalui

Eddie Awad
sumber
19
Dalam praktiknya, setiap DBA melakukan sqlplus / as sysdbapekerjaan sehari-hari - dalam 15 tahun bekerja dengan puluhan DBA berpengalaman, saya tidak pernah menjumpai siapa pun yang mengganggu SYSTEMakun.
Gayus
21

Dari Dokumentasi Oracle 11g :

SYS DAN SISTEM Pengguna

Akun pengguna administratif berikut secara otomatis dibuat ketika Anda menginstal Oracle Database. Keduanya dibuat dengan kata sandi yang Anda berikan saat instalasi, dan keduanya secara otomatis diberikan peran DBA.

  • SYS

    Akun ini dapat melakukan semua fungsi administrasi. Semua tabel dan tampilan dasar (mendasari) untuk kamus data basis data disimpan dalam skema SYS. Tabel dan tampilan dasar ini sangat penting untuk pengoperasian Oracle Database. Untuk menjaga integritas kamus data, tabel dalam skema SYS hanya dimanipulasi oleh database. Mereka tidak boleh dimodifikasi oleh pengguna atau administrator basis data apa pun. Anda tidak boleh membuat tabel apa pun dalam skema SYS.

    Pengguna SYS diberikan hak istimewa SYSDBA, yang memungkinkan pengguna untuk melakukan tugas administratif tingkat tinggi seperti cadangan dan pemulihan.

  • SYSTEM

    Akun ini dapat melakukan semua fungsi administrasi kecuali yang berikut:

    • Cadangan dan pemulihan

    • Peningkatan basis data

    Meskipun akun ini dapat digunakan untuk melakukan tugas administrasi sehari-hari, Oracle sangat menyarankan untuk membuat akun pengguna yang disebutkan untuk mengelola database Oracle untuk memungkinkan pemantauan aktivitas basis data.

Keistimewaan Sistem SYSDBA dan SYSOPER

SYSDBA dan SYSOPER adalah hak administratif yang diperlukan untuk melakukan operasi administrasi tingkat tinggi seperti membuat, memulai, mematikan, mencadangkan, atau memulihkan database. Hak istimewa sistem SYSDBA adalah untuk administrator basis data yang diberdayakan penuh dan hak istimewa sistem SYSOPER memungkinkan pengguna untuk melakukan tugas-tugas operasional dasar, tetapi tanpa kemampuan untuk melihat data pengguna.

Hak istimewa sistem SYSDBA dan SYSOPER memungkinkan akses ke instance database bahkan ketika database tidak terbuka. Karena itu, kontrol terhadap hak-hak istimewa ini sepenuhnya berada di luar basis data itu sendiri. Kontrol ini memungkinkan administrator yang diberikan salah satu hak istimewa ini untuk terhubung ke instance database untuk memulai database.

Anda juga dapat menganggap hak istimewa SYSDBA dan SYSOPER sebagai jenis koneksi yang memungkinkan Anda untuk melakukan operasi basis data tertentu yang hak istimewanya tidak dapat diberikan dengan cara lain apa pun. Misalnya, jika Anda memiliki hak istimewa SYSDBA, maka Anda dapat terhubung ke database menggunakan AS SYSDBA.

Pengguna SYS secara otomatis diberikan hak istimewa SYSDBA setelah instalasi. Ketika Anda masuk sebagai SYS pengguna, Anda harus terhubung ke database sebagai SYSDBA atau SYSOPER. Menghubungkan sebagai pengguna SYSDBA meminta hak istimewa SYSDBA; terhubung saat SYSOPER meminta hak istimewa SYSOPER. Kontrol Basis Data Oracle Enterprise Manager tidak mengizinkan Anda untuk masuk sebagai SYS pengguna tanpa terhubung sebagai SYSDBA atau SYSOPER.

Saat Anda terhubung dengan hak istimewa SYSDBA atau SYSOPER, Anda terhubung dengan skema default, bukan dengan skema yang umumnya dikaitkan dengan nama pengguna Anda. Untuk SYSDBA skema ini adalah SYS; untuk SYSOPER skema tersebut adalah PUBLIK.

Leigh Riffel
sumber
8

Contoh perbedaan besar antara SYS (atau koneksi SYSDBA lainnya) dan setiap pengguna lain: SYS tidak dapat membaca secara konsisten . Salah satu implikasi dari ini (ada yang lain) adalah bahwa Anda tidak dapat melakukan ekspor CONSISTENT = Y sebagai SYS menggunakan utilitas exp yang lama.

Karyawan dan pakar Oracle Tom Kyte berpendapat bahwa Anda sebaiknya jarang menggunakan keduanya . Mengenai SYS, ia menunjukkan bahwa itu bekerja secara berbeda seperti yang ditunjukkan contoh di atas, tetapi lebih umum ia menganggap mereka "dimiliki" oleh Oracle Corporation. Jika Anda membuat perubahan atau menambahkan sesuatu dalam skema baik dan terjadi masalah (misalnya, pemutakhiran basis data gagal), saya menduga jawaban Dukungan Oracle adalah, "Anda seharusnya tidak melakukan itu."

Stephen Kendall
sumber
0

Ini terdengar seolah-olah poster mengatakan bahwa hanya ada dua cara untuk terhubung:

"Ada dua cara untuk terhubung ke Oracle sebagai administrator menggunakan sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Akun administrator adalah akun pengguna Oracle apa pun dengan hak istimewa SYSDBA atau peran DBA. SYS adalah pengguna yang telah ditentukan sebelumnya dengan SYSDBA, dan SYSTEM adalah pengguna yang telah ditentukan sebelumnya dengan DBA. Jika ada n akun administrator dalam database, maka ada n pengguna yang dapat terhubung dengan hak administrator (menurut definisi) - tidak hanya ada dua.

Hal lain menyangkut SQL * Plus. Anda dapat terhubung sebagai SYS menggunakan otentikasi OS pada prompt OS: sqlplus / as sysdba. Anda juga dapat memulai SQL * Plus dan CONNECT / AS SYSDBA. Anda dapat menentukan kata sandi pada OS prompt, dalam pernyataan CONNECT, atau meminta SQL * Plus untuk Anda. Anda dapat menggunakan nama layanan net. Anda dapat (dan harus) mengubah kata sandi SISTEM. Dan seterusnya.

Apa yang dimaksud oleh poster itu, saya pikir, adalah bahwa setidaknya ada dua akun administrator dalam database Oracle, dan jika SISTEM memiliki kata sandi default, dan jika otentikasi OS diatur, maka ini adalah dua (dari banyak) contoh dari bagaimana SYS dan SISTEM dapat login ke database menggunakan SQL * Plus.

Pertanyaan tentang perbedaan antara SYS dan SYSTEM berbeda dan telah dijawab.

Lance Ashdown
sumber