2017-10-16 37 views
0

我試圖OS AUTH root用戶,但即使我創建外部標識的Oracle數據庫用戶ops$root,我不斷收到登錄失敗的錯誤。所以我audit session whenever not successful,我看到一堆ops$daemon用戶連接的,當我運行SELECT * FROM sys.aud$ WHERE returncode=1017;

我跑create user ops$daemon identified externally後,我成功連接的操作系統用戶root,爲什麼呢?

回答

1

聯繫Oracle支持站點。 Oracle注意:9 1 2 6 0.1 - UNIX:CONNECT /作爲根失敗,使用ORA-01017並與其他用戶成功工作

sql * net驅動程序將「root」用戶轉換爲「守護程序」作爲代碼爲了安全起見,明確禁止陰影進程在根目錄下運行。

[[email protected] ~]#strace -fo /tmp/sqlplus.out sqlplus/

    SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 17 11:21:28 2017 

    Copyright (c) 1982, 2011, Oracle. All rights reserved. 


[[email protected] ~]# grep setuid /tmp/sqlplus.out 
18432 setuid(2)       = 0 
18433 setuid(2)       = 0 
18434 setuid(2)       = 0 
[[email protected] ~]# grep getuid /tmp/sqlplus.out 
18431 getuid()       = 0 
18431 getuid()       = 0 
18431 getuid()       = 0 
18431 getuid()       = 0 
18431 getuid()       = 0 
18432 getuid()       = 2 
18432 getuid()       = 2 
18431 getuid()       = 0 
18433 getuid()       = 2 
18433 getuid()       = 2 
18431 getuid()       = 0 
18434 getuid()       = 2 
18434 getuid()       = 2 

前5個函數getuid()調用返回「0」,但最後一次調用返回「2」。 「2」是「守護程序」用戶的ID。

[[email protected] ~]# grep daemon /etc/passwd 
    daemon:x:2:2:daemon:/sbin:/sbin/nologin 
    haldaemon:x:68:68:HAL daemon:/:/sbin/nologin 
    [[email protected] ~]# id daemon 
    uid=2(daemon) gid=2(daemon) groups=2(daemon),1(bin),4(adm),7(lp) 

在最後一次getuid()函數調用後的某個時間應該會看到實際的Oracle錯誤。由於使用os身份驗證以root用戶身份登錄到sqlplus時,getuid()函數的返回值發生更改,因此將返回ORA-1017錯誤。

這不是一個Oracle錯誤:root用戶在UNIX/Linux的一個特例。

+0

有沒有更多的細節?我搜索了91260.1,並沒有太多信息。 –

+0

我添加了詳細信息。 –