ความแตกต่างระหว่าง sys และบัญชีระบบในฐานข้อมูล Oracle คืออะไร?


39

มีสองวิธีในการเชื่อมต่อกับ Oracle ในฐานะผู้ดูแลระบบโดยใช้ sqlplus:

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

ฉันควรใช้บัญชีเหล่านี้เพื่อจุดประสงค์ที่แตกต่างกัน

งานใดที่เป็นแบบแผนสองอย่างนี้มีไว้เพื่ออะไร? เมื่อใดที่ฉันควรใช้อันใดอันหนึ่งในหมู่พวกเขา?

คำตอบ:


43

SYS

  • สร้างโดยอัตโนมัติเมื่อติดตั้งฐานข้อมูล Oracle
  • ได้รับDBAบทบาทโดยอัตโนมัติ
  • มีรหัสผ่านเริ่มต้น: CHANGE_ON_INSTALL (ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน)
  • เป็นเจ้าของตารางฐานและมุมมองสำหรับพจนานุกรมข้อมูลฐานข้อมูล
  • สกีมาเริ่มต้นเมื่อคุณเชื่อมต่อเป็น SYSDBA

ตารางในSYSschema นั้นถูกจัดการโดยฐานข้อมูลเท่านั้น พวกเขาไม่ควรได้รับการแก้ไขโดยผู้ดูแลระบบของผู้ใช้หรือฐานข้อมูลใด ๆ และไม่มีใครควรสร้างตารางใด ๆ SYSในสคีมาของผู้ใช้ ผู้ใช้ฐานข้อมูลไม่ควรเชื่อมต่อกับฐานข้อมูล Oracle โดยใช้SYSบัญชี

SYSTEM

  • สร้างโดยอัตโนมัติเมื่อติดตั้งฐานข้อมูล Oracle
  • ได้รับDBAบทบาทโดยอัตโนมัติ
  • มีรหัสผ่านเริ่มต้น: MANAGER (ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน)
  • ใช้เพื่อสร้างตารางและมุมมองเพิ่มเติมที่แสดงข้อมูลการดูแลระบบ
  • ใช้เพื่อสร้างตารางภายในและมุมมองที่ใช้โดยตัวเลือกและเครื่องมือฐานข้อมูล Oracle ต่างๆ

อย่าใช้SYSTEMสคีมาเพื่อจัดเก็บตารางที่น่าสนใจสำหรับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ

/ ผ่าน


19
ในทางปฏิบัติ DBA ทุกคนsqlplus / as sysdbaใช้งานประจำวัน - ใน 15 ปีที่ทำงานกับ DBA ที่มีประสบการณ์หลายสิบคนฉันไม่เคยเจอใครที่รบกวนSYSTEMบัญชี
ออกุสตุส

21

จากเอกสาร Oracle 11g :

ผู้ใช้ SYS และระบบ

บัญชีผู้ใช้ด้านการจัดการต่อไปนี้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณติดตั้ง Oracle Database ทั้งคู่ถูกสร้างขึ้นด้วยรหัสผ่านที่คุณให้ไว้เมื่อทำการติดตั้งและทั้งคู่จะได้รับบทบาท DBA โดยอัตโนมัติ

  • SYS

    บัญชีนี้สามารถทำหน้าที่บริหารทั้งหมด ตารางและมุมมองพื้นฐาน (พื้นฐาน) ทั้งหมดสำหรับพจนานุกรมข้อมูลฐานข้อมูลจะถูกเก็บไว้ในสคีมาของ SYS ตารางและมุมมองพื้นฐานเหล่านี้มีความสำคัญต่อการทำงานของฐานข้อมูล Oracle เพื่อรักษาความถูกต้องของพจนานุกรมข้อมูลตารางใน schema ของ SYS จะถูกจัดการโดยฐานข้อมูลเท่านั้น ไม่ควรแก้ไขโดยผู้ใช้หรือผู้ดูแลฐานข้อมูล คุณต้องไม่สร้างตารางใด ๆ ในสคีมาของ SYS

    ผู้ใช้ SYS ได้รับสิทธิ์ SYSDBA ซึ่งช่วยให้ผู้ใช้สามารถดำเนินงานด้านการดูแลระดับสูงเช่นการสำรองและกู้คืน

  • SYSTEM

    บัญชีนี้สามารถใช้งานฟังก์ชั่นการจัดการทั้งหมดยกเว้น:

    • สำรองและกู้คืน

    • อัพเกรดฐานข้อมูล

    ในขณะที่บัญชีนี้สามารถใช้ในการดำเนินงานด้านการดูแลประจำวันได้ Oracle แนะนำอย่างยิ่งให้สร้างบัญชีผู้ใช้ที่มีชื่อสำหรับการบริหารฐานข้อมูล Oracle เพื่อเปิดใช้งานการตรวจสอบกิจกรรมฐานข้อมูล

สิทธิ์ของระบบ SYSDBA และ SYSOPER

SYSDBA และ SYSOPER เป็นสิทธิ์ระดับผู้ดูแลที่จำเป็นสำหรับการดำเนินการด้านการดูแลระบบระดับสูงเช่นการสร้างการเริ่มต้นการปิดการสำรองข้อมูลหรือการกู้คืนฐานข้อมูล สิทธิ์ของระบบ SYSDBA มีไว้สำหรับผู้ดูแลระบบฐานข้อมูลที่ได้รับสิทธิ์อย่างเต็มที่และสิทธิ์ของระบบ SYSOPER ช่วยให้ผู้ใช้สามารถปฏิบัติงานพื้นฐานได้ แต่ไม่มีความสามารถในการดูข้อมูลผู้ใช้

สิทธิ์ของระบบ SYSDBA และ SYSOPER อนุญาตให้เข้าถึงอินสแตนซ์ฐานข้อมูลแม้ว่าจะไม่เปิดฐานข้อมูล การควบคุมสิทธิ์เหล่านี้จึงอยู่นอกฐานข้อมูลอย่างสมบูรณ์ การควบคุมนี้ช่วยให้ผู้ดูแลระบบที่ได้รับสิทธิ์อย่างใดอย่างหนึ่งเหล่านี้เพื่อเชื่อมต่อกับอินสแตนซ์ฐานข้อมูลเพื่อเริ่มฐานข้อมูล

คุณยังสามารถนึกถึงสิทธิ์ SYSDBA และ SYSOPER เป็นประเภทการเชื่อมต่อที่ช่วยให้คุณสามารถดำเนินการฐานข้อมูลบางอย่างที่ไม่สามารถให้สิทธิ์ในลักษณะอื่นได้ ตัวอย่างเช่นถ้าคุณมีสิทธิ์ SYSDBA คุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้ AS SYSDBA

ผู้ใช้ SYS จะได้รับสิทธิ์ SYSDBA โดยอัตโนมัติเมื่อทำการติดตั้ง เมื่อคุณเข้าสู่ระบบในฐานะผู้ใช้ SYS คุณต้องเชื่อมต่อกับฐานข้อมูลเป็น SYSDBA หรือ SYSOPER การเชื่อมต่อในฐานะผู้ใช้ SYSDBA จะเรียกใช้สิทธิ์ SYSDBA กำลังเชื่อมต่อเป็น SYSOPER จะเรียกใช้สิทธิ์ SYSOPER การควบคุมฐานข้อมูล Oracle Enterprise Manager ไม่อนุญาตให้คุณล็อกอินในฐานะผู้ใช้ SYS โดยไม่ต้องเชื่อมต่อเป็น SYSDBA หรือ SYSOPER

เมื่อคุณเชื่อมต่อกับสิทธิ์ SYSDBA หรือ SYSOPER คุณจะเชื่อมต่อกับสคีมาเริ่มต้นไม่ใช่สคีมาที่โดยทั่วไปเกี่ยวข้องกับชื่อผู้ใช้ของคุณ สำหรับ SYSDBA สคีมานี้คือ SYS; สำหรับ SYSOPER สคีมาเป็นแบบสาธารณะ


8

ตัวอย่างของความแตกต่างที่สำคัญระหว่าง SYS (หรือการเชื่อมต่อ SYSDBA อื่น ๆ ) และผู้ใช้อื่น ๆ : SYS ไม่สามารถทำการอ่านที่สอดคล้องกันได้ สิ่งหนึ่งที่เกี่ยวข้องกับสิ่งนี้ (มีอื่น ๆ ) คือคุณไม่สามารถทำการส่งออก CONSISTENT = Y เป็น SYS โดยใช้ยูทิลิตี้ exp เก่า

ออราเคิลพนักงานและผู้เชี่ยวชาญทอม Kyte มีความเห็นว่าคุณไม่ค่อยเคยควรใช้อย่างใดอย่างหนึ่ง เกี่ยวกับ SYS เขาชี้ให้เห็นว่ามันทำงานแตกต่างกันตามตัวอย่างข้างต้นบ่งชี้ แต่โดยทั่วไปแล้วเขาคิดว่าพวกเขาเป็น "เจ้าของ" โดย Oracle Corporation หากคุณทำการเปลี่ยนแปลงหรือเพิ่มบางอย่างในสคีมาและเกิดปัญหาขึ้น (เช่นการอัพเกรดฐานข้อมูลล้มเหลว) ฉันสงสัยว่าคำตอบของ Oracle Support จะเป็น "คุณไม่ควรทำเช่นนั้น"


0

ดูเหมือนว่าผู้โพสต์บอกว่ามีเพียงสองวิธีในการเชื่อมต่อ:

"มีสองวิธีในการเชื่อมต่อกับ Oracle ในฐานะผู้ดูแลระบบโดยใช้ sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

บัญชีผู้ดูแลระบบคือบัญชีผู้ใช้ Oracle ใด ๆ ที่มีสิทธิ์ SYSDBA หรือบทบาท DBA SYS เป็นผู้ใช้ที่กำหนดไว้ล่วงหน้าด้วย SYSDBA และ SYSTEM เป็นผู้ใช้ที่กำหนดไว้ล่วงหน้าด้วย DBA หากมีบัญชีผู้ดูแลระบบ n บัญชีในฐานข้อมูลแสดงว่ามีผู้ใช้ n รายที่สามารถเชื่อมต่อกับสิทธิ์ผู้ดูแลระบบ (ตามคำจำกัดความ) - ไม่ใช่แค่สองบัญชีเท่านั้น

อีกประเด็นที่เกี่ยวข้องกับ SQL * Plus คุณสามารถเชื่อมต่อเป็น SYS โดยใช้การรับรองความถูกต้องของระบบปฏิบัติการที่พร้อมท์ระบบปฏิบัติการ: sqlplus / as sysdba คุณยังสามารถเริ่ม SQL * Plus จากนั้นเชื่อมต่อ / AS SYSDBA คุณสามารถระบุรหัสผ่านที่พร้อมต์ระบบปฏิบัติการในคำสั่ง CONNECT หรือให้ SQL * Plus แจ้งให้คุณทราบ คุณสามารถใช้ชื่อบริการสุทธิ คุณสามารถ (และควร) เปลี่ยนรหัสผ่านระบบ และอื่น ๆ

ผู้โพสต์หมายความว่าอย่างไรฉันคิดว่ามีบัญชีผู้ดูแลระบบอย่างน้อยสองบัญชีในฐานข้อมูล Oracle และหากระบบมีรหัสผ่านเริ่มต้นและหากมีการตั้งค่าการรับรองความถูกต้องของระบบปฏิบัติการแล้วนี่คือตัวอย่างสองรายการ วิธีที่ SYS และระบบสามารถล็อกอินเข้าสู่ฐานข้อมูลโดยใช้ SQL * Plus

คำถามของความแตกต่างระหว่าง SYS และ SYSTEM นั้นแตกต่างกันและได้รับคำตอบแล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.