Oracle sys和system使用者、sysdba 和sysoper系統許可權、sysdba和dba角色的區別

來源:互聯網
上載者:User

sys和system使用者區別

1)最重要的區別,儲存的資料的重要性不同

sys所有oracle的資料字典的基表和視圖都存放在sys使用者中,這些基表和視圖對於oracle的運行是至關重要的,由資料庫自己維護,任何使用者都不能手動更改。sys使用者擁有dba,sysdba,sysoper等角色或許可權,是oracle許可權最高的使用者。

 

system使用者用於存放次一級的內部資料,如oracle的一些特性或工具的管理資訊。system使用者擁有普通dba角色許可權。

  

2)其次的區別,許可權的不同

system使用者只能用normal身份登陸em,除非你對它授予了sysdba的系統許可權或者syspoer系統許可權。
sys使用者具有“SYSDBA”或者“SYSOPER”系統許可權,登陸em也只能用這兩個身份,不能用normal。

以sys使用者登陸Oracle,執行select * from V_$PWFILE_USERS;可查詢到具有sysdba許可權的使用者,如:

SQL> select * fromV_$PWFILE_USERS;
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE

 

Sysdba和sysoper兩個系統許可權區別

normal 、sysdba、 sysoper有什麼區別
normal 是普通使用者
另外兩個,你考察他們所具有的許可權就知道了
sysdba擁有最高的系統許可權,登陸後是 sys
sysoper主要用來啟動、關閉資料庫,sysoper 登陸後使用者是 public

sysdba和sysoper屬於systemprivilege,也稱為administrative privilege,擁有例如資料庫開啟關閉之類一些系統管理層級的許可權sysdba和sysoper具體的許可權可以看下錶:

 

系統許可權

sysdba

sysoper

區別

Startup(啟動資料庫)

startup

Shutdown(關閉資料庫)

shutdown

alter database open/mount/backup

alter database open/mount/backup

改變字元集

none

create database(建立資料庫)

None不能建立資料庫

drop database(刪除資料庫)

none

create spfile

create spfile

alter database archivelog(歸檔日誌)

alter database archivelog

alter database recover(恢複資料庫)

只能完全恢複,不能執行不完全恢複

擁有restricted session(會話限制)許可權

擁有restricted session許可權

可以讓使用者作為sys使用者串連

可以進行一些基本的操作,但不能查看使用者資料

登入之後使用者是sys

登入之後使用者是public

 

 

system如果正常登入,它其實就是一個普通的dba使用者,但是如果以as sysdba登入,其結果實際上它是作為sys使用者登入的,這一點類似Linux裡面的sudo的感覺,從登入資訊裡面我們可以看出來。因此在as sysdba串連資料庫後,建立的對象實際上都是產生在sys中的。其他使用者也是一樣,如果 as sysdba登入,也是作為sys使用者登入的,看以下實驗:

SQL> create user strong identified by strong;

使用者已建立。

SQL> conn strong/strong@magick as sysdba;

已串連。

SQL> show user;

USER 為 "SYS"

SQL> create table test(a int);

表已建立。

SQL> select owner from dba_tables wheretable_name='test';

未選定行 //因為建立表時oracle自動轉為大寫,所以用小寫查的時候是不存在的;

SQL> select owner from dba_tables wheretable_name='TEST';

OWNER

------------------------------

SYS

 

dba和sysdba的區別

dba、sysdba這兩個系統角色有什麼區別呢

在說明這一點之前我需要說一下oracle服務的建立過程

建立執行個體→·啟動執行個體→·建立資料庫(system資料表空間是必須的)

啟動過程

執行個體啟動→·裝載資料庫→·開啟資料庫

sysdba,是管理oracle執行個體的,它的存在不依賴於整個資料庫完全啟動,只要執行個體啟動了,他就已經存在,以sysdba身份登陸,裝載資料庫、開啟資料庫。只有資料庫開啟了,或者說整個資料庫完全啟動後,dba角色才有了存在的基礎!

 

預設密碼:

   sys  change_on_install   (意思是安裝時改變,我改成zxsz4084)

system   manager     

scott  tiger

 

在10g裡面,sys使用者必須以sysdba/sysoper身份登陸資料庫。解決辦法 sqlplus sys/zxsz4084 as sysdba
再說後者。一看你的system使用者密碼就是錯誤得,你說你在安裝時候改過密碼,應該就是和你的sys使用者密碼一樣得,應該是zxsz4084,而不是預設得密碼manager,你要是是對system使用者進行解鎖的話,系統自然要提醒你修改密碼,所以密碼應該不是manager。
 

SYS使用者是Oracle中許可權最高的使用者,而SYSTEM是一個用於資料庫管理的使用者。在資料庫安裝完之後,應立即修改SYS,SYSTEM這兩個使用者的口令,以保證資料庫的安全。

修改口令:
sqlplus / as sysdba;
1.sql> alter user sys identified by 123456

2.sql>grantconnect to sys identified by 123456

3.sql>passwordsystem (註:此命令只適用於SYSTEM)

SYS和SYSTEM使用者之間可以相互修改口令

後,按以下幾種方法登入:
sqlplus / as sysdba;
sqlplus sys/abcde as sysdba;
sqlplus sys/ as sysdba;
sqlplus sys as sysdba;
都可以登入成功,然後查看目前使用者:
sql>show user
顯示 user is 'SYS'。
這是為什麼呢,為什麼修改了口令沒有效果,不用口令或者隨便用什麼口令都可以進入呢。
答案是:認證方法。

認證方法。

作業系統,組中的使用者登入的作業系統,就可以以SYSDBA的身份登入資料庫,不會驗證SYS的口令。
對於windows作業系統,在oracle資料庫安裝後,會自動在作業系統中安裝一個名為ORA_DBA的使用者組,只要是該組中的使用者,即可以SYSDBA的身份登入資料庫而不會驗證SYS的口令。也可以建立名為ORA_SID_DBA(SID為執行個體名)的使用者組,屬於該使用者組的使用者也可以具備以上特權。

認證。(windows,unix平台有大同小異)

為NONE
2.修改SQLNET.ORA檔案,此檔案所在目錄為:...\oracle\product\10.1.0\db_1\network\admin\sqlnet.ora。在其中添加這一行:SQLNET.AUTENTICATION_SERVICES=(NTS)
3.重新啟動資料庫。

認證(口令檔案認證):為EXCLUSIVE或SHARED。其中,exclusive表示僅有一個執行個體可以使用口令檔案。shared表口令檔案可以供多個執行個體使用。
2.修改SQLNET.ORA檔案,在SQLNET.AUTENTICATION_SERVICES=(NTS)前加#號,即#SQLNET.AUTENTICATION_SERVICES=(NTS)
3.重新啟動資料庫。

口令丟失的情況,怎麼辦?

1.使用system使用者進行口令更改

2.如果存在密碼檔案,則刪除它(一般路徑在..\oracle\product\xx.x.x\db_1\database下) 然後下輸入表示密碼檔案路徑,密碼檔案的格式為pwd<sid>,sid是資料庫執行個體名。

下為orapwd<sid>。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.