我隨便創建了一個用戶,create user lisi identified by lisi; 當我用sqlplus登錄的時候:
cmd -> sqlplus lisi/lisi 進不去 ->然後 lisi lisi as sysdba 就進去了,所以才有了疑問。
然後我進入管理員,將lisi用戶刪掉了
cmd -> sqlplus lisi/lisi 進不去 ->然後 lisi lisi as sysdba 就進去了,疑問就更深了。
分別三個人解答:
解答一:
對於windows操作系統,在oracle數據庫安裝後,會自動在操作系統中安裝一個名為ORA_DBA的用戶組,只要是該組中的用戶,即可以
SYSDBA的身份登錄數據庫而不會驗證SYS的口令。也可以創建名為ORA_SID_DBA(SID為實例名)的用戶組,屬於該用戶組的用戶也可以
具備以上特權。這個是你為啥能show的時候還是系統用戶,
解答二:
簡單的說,oracle要認為你是sysdba有以下3個條件
當上面3個條件有一個不滿足的時候,你登錄的用戶就不是sys了,而如果你登錄的那個用戶沒有被授權為dba的話,那他的權限肯定就只能是普通權限 了。
解答三:
寫法上都是可以的,但是加上as sysdba那麼你登陸的就是sysdba,和你前面的用戶沒關系了,你如果新建一個用戶user1,如create user user1 identfied by 123,然後用sys賬戶grant給他登陸權限之後,就可以直接conn user1/123,這樣連的就是user1,如果你conn user1/123 as sysdba, 那你連接的還是sysdba,和前面的user1一點關系都沒有了