Sự khác biệt giữa sys và tài khoản hệ thống trong cơ sở dữ liệu Oracle là gì?


39

Có hai cách để kết nối với Oracle với tư cách quản trị viên bằng sqlplus:

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

Những tài khoản này nên được sử dụng cho các mục đích khác nhau, tôi cho rằng.

Hai nhiệm vụ này có nghĩa là gì? Khi nào tôi nên sử dụng cái này hay cái khác trong số chúng?

Câu trả lời:


43

SYS

  • Tự động tạo khi cơ sở dữ liệu Oracle được cài đặt
  • Tự động cấp DBAvai trò
  • Có mật khẩu mặc định: CHANGE_ON_INSTALL (đảm bảo bạn thay đổi nó)
  • Sở hữu các bảng cơ sở và khung nhìn cho từ điển dữ liệu cơ sở dữ liệu
  • Lược đồ mặc định khi bạn kết nối như SYSDBA

Các bảng trong SYSlược đồ chỉ được thao tác bởi cơ sở dữ liệu. Chúng không bao giờ được sửa đổi bởi bất kỳ người dùng hoặc quản trị viên cơ sở dữ liệu nào và không ai nên tạo bất kỳ bảng nào trong lược đồ của người dùng SYS. Người dùng cơ sở dữ liệu không nên kết nối với cơ sở dữ liệu Oracle bằng SYStài khoản.

SYSTEM

  • Tự động tạo khi cơ sở dữ liệu Oracle được cài đặt
  • Tự động cấp DBAvai trò
  • Có mật khẩu mặc định: MANAGER (đảm bảo bạn thay đổi nó)
  • Được sử dụng để tạo các bảng và dạng xem bổ sung hiển thị thông tin quản trị
  • Được sử dụng để tạo các bảng và khung nhìn nội bộ được sử dụng bởi các công cụ và tùy chọn cơ sở dữ liệu Oracle khác nhau

Không bao giờ sử dụng SYSTEMlược đồ để lưu trữ các bảng quan tâm cho người dùng không phải quản trị viên.

/thông qua


19
Trong thực tế, mọi DBA làm sqlplus / as sysdbacho công việc hàng ngày - trong 15 năm làm việc với hàng tá DBA có kinh nghiệm, tôi chưa bao giờ bắt gặp bất kỳ ai bận tâm đến SYSTEMtài khoản.
Gaius

21

Từ Tài liệu Oracle 11g :

Người dùng SYS VÀ HỆ THỐNG

Các tài khoản người dùng quản trị sau đây được tạo tự động khi bạn cài đặt Cơ sở dữ liệu Oracle. Cả hai đều được tạo bằng mật khẩu mà bạn cung cấp khi cài đặt và cả hai đều tự động được cấp vai trò DBA.

  • SYS

    Tài khoản này có thể thực hiện tất cả các chức năng quản trị. Tất cả các bảng và khung nhìn cơ sở (bên dưới) cho từ điển dữ liệu cơ sở dữ liệu được lưu trữ trong lược đồ SYS. Các bảng và khung nhìn cơ sở này rất quan trọng cho hoạt động của Cơ sở dữ liệu Oracle. Để duy trì tính toàn vẹn của từ điển dữ liệu, các bảng trong lược đồ SYS chỉ được thao tác bởi cơ sở dữ liệu. Chúng không bao giờ được sửa đổi bởi bất kỳ người dùng hoặc quản trị viên cơ sở dữ liệu. Bạn không được tạo bất kỳ bảng nào trong lược đồ SYS.

    Người dùng SYS được cấp đặc quyền SYSDBA, cho phép người dùng thực hiện các tác vụ quản trị cấp cao như sao lưu và phục hồi.

  • SYSTEM

    Tài khoản này có thể thực hiện tất cả các chức năng quản trị ngoại trừ các mục sau:

    • Sao lưu và phục hồi

    • Nâng cấp cơ sở dữ liệu

    Mặc dù tài khoản này có thể được sử dụng để thực hiện các tác vụ quản trị hàng ngày, nhưng Oracle khuyến nghị nên tạo tài khoản người dùng có tên để quản trị cơ sở dữ liệu Oracle để cho phép giám sát hoạt động của cơ sở dữ liệu.

Đặc quyền hệ thống SYSDBA và SYSOPER

SYSDBA và SYSOPER là các đặc quyền quản trị cần thiết để thực hiện các hoạt động quản trị cấp cao như tạo, khởi động, tắt, sao lưu hoặc khôi phục cơ sở dữ liệu. Đặc quyền hệ thống SYSDBA dành cho các quản trị viên cơ sở dữ liệu được trao quyền đầy đủ và đặc quyền hệ thống SYSOPER cho phép người dùng thực hiện các tác vụ vận hành cơ bản, nhưng không có khả năng xem dữ liệu người dùng.

Các đặc quyền hệ thống SYSDBA và SYSOPER cho phép truy cập vào một thể hiện cơ sở dữ liệu ngay cả khi cơ sở dữ liệu không mở. Do đó, việc kiểm soát các đặc quyền này hoàn toàn nằm ngoài cơ sở dữ liệu. Điều khiển này cho phép quản trị viên được cấp một trong những đặc quyền này kết nối với thể hiện cơ sở dữ liệu để khởi động cơ sở dữ liệu.

Bạn cũng có thể nghĩ về các đặc quyền của SYSDBA và SYSOPER như các loại kết nối cho phép bạn thực hiện các hoạt động cơ sở dữ liệu nhất định mà các đặc quyền không thể được cấp theo bất kỳ cách nào khác. Ví dụ: nếu bạn có đặc quyền SYSDBA, thì bạn có thể kết nối với cơ sở dữ liệu bằng AS SYSDBA.

Người dùng SYS được tự động cấp đặc quyền SYSDBA khi cài đặt. Khi bạn đăng nhập với tư cách là người dùng SYS, bạn phải kết nối với cơ sở dữ liệu dưới dạng SYSDBA hoặc SYSOPER. Kết nối với tư cách là người dùng SYSDBA gọi đặc quyền SYSDBA; kết nối như SYSOPER gọi đặc quyền SYSOPER. Kiểm soát cơ sở dữ liệu quản lý doanh nghiệp Oracle không cho phép bạn đăng nhập với tư cách là người dùng SYS mà không kết nối như SYSDBA hoặc SYSOPER.

Khi bạn kết nối với đặc quyền SYSDBA hoặc SYSOPER, bạn kết nối với một lược đồ mặc định, không phải với lược đồ thường được liên kết với tên người dùng của bạn. Đối với SYSDBA, lược đồ này là SYS; đối với SYSOPER lược đồ là PUBLIC.


8

Một ví dụ về sự khác biệt lớn giữa SYS (hoặc bất kỳ kết nối SYSDBA nào khác) và mọi người dùng khác: SYS không thể đọc nhất quán . Một hàm ý của điều này (có những thứ khác) là bạn không thể thực hiện xuất khẩu XÁC NHẬN = Y dưới dạng SYS bằng tiện ích exp cũ.

Nhân viên và chuyên gia của Oracle Tom Kyte cho rằng bạn hiếm khi nên sử dụng một trong hai . Về SYS, ông chỉ ra rằng nó hoạt động khác như ví dụ trên chỉ ra, nhưng nhìn chung, ông coi chúng là "sở hữu" của Tập đoàn Oracle. Nếu bạn thực hiện thay đổi hoặc thêm một cái gì đó vào lược đồ và xảy ra sự cố (ví dụ: nâng cấp cơ sở dữ liệu không thành công), tôi nghi ngờ câu trả lời của Bộ phận hỗ trợ của Oracle sẽ là "Bạn không nên làm điều đó."


0

Điều này nghe có vẻ như người đăng đang nói rằng chỉ có hai cách để kết nối:

"Có hai cách để kết nối với Oracle với tư cách quản trị viên bằng sqlplus:

sqlplus sys as sysdba
sqlplus system/manager"

Tài khoản quản trị viên là bất kỳ tài khoản người dùng Oracle nào có đặc quyền SYSDBA hoặc vai trò DBA. SYS là người dùng được xác định trước với SYSDBA và HỆ THỐNG là người dùng được xác định trước với DBA. Nếu có n tài khoản quản trị viên trong cơ sở dữ liệu, thì có n người dùng có thể kết nối với đặc quyền của quản trị viên (theo định nghĩa) - không chỉ có hai người trong số họ.

Một điểm khác liên quan đến SQL * Plus. Bạn có thể kết nối dưới dạng SYS bằng xác thực hệ điều hành tại dấu nhắc của hệ điều hành: sqlplus / as sysdba. Bạn cũng có thể bắt đầu SQL * Plus và sau đó CONNECT / AS SYSDBA. Bạn có thể chỉ định mật khẩu tại dấu nhắc của HĐH, trong câu lệnh CONNECT hoặc có dấu nhắc SQL * Plus cho bạn. Bạn có thể sử dụng một tên dịch vụ mạng. Bạn có thể (và nên) thay đổi mật khẩu HỆ THỐNG. Và như vậy.

Tôi nghĩ người đăng có ý muốn nói gì về việc có ít nhất hai tài khoản quản trị viên trong cơ sở dữ liệu Oracle và nếu HỆ THỐNG có mật khẩu mặc định và nếu xác thực hệ điều hành được thiết lập, thì đây là hai (trong số rất nhiều) ví dụ về Làm thế nào SYS và HỆ THỐNG có thể đăng nhập vào cơ sở dữ liệu bằng SQL * Plus.

Câu hỏi về sự khác biệt giữa SYS và HỆ THỐNG là khác nhau và đã được trả lời.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.