Oracle OS認(rèn)證是Oracle身份驗(yàn)證的三種方法之一,也稱為“本地OS認(rèn)證”。該技術(shù)可用于驗(yàn)證運(yùn)行Oracle軟件的計(jì)算機(jī)上的特定本地用戶。在這種方式下,Oracle軟件會(huì)詢問操作系統(tǒng)可用用戶列表,并運(yùn)行適當(dāng)?shù)哪_本以驗(yàn)證該用戶。
在實(shí)際使用中,OS認(rèn)證通常應(yīng)用于系統(tǒng)管理員訪問數(shù)據(jù)庫。例如,一個(gè)公司有一個(gè)Oracle數(shù)據(jù)庫,數(shù)據(jù)庫管理員需要登錄并管理數(shù)據(jù)庫。如果登錄該計(jì)算機(jī)時(shí)使用用戶名David,在數(shù)據(jù)庫中配置了本地OS認(rèn)證,則David可以使用該操作系統(tǒng)賬號(hào)直接登錄Oracle數(shù)據(jù)庫,而無需輸入單獨(dú)的數(shù)據(jù)庫用戶和密碼。這是因?yàn)镺S認(rèn)證使用的是本地計(jì)算機(jī)上的用戶憑據(jù)。
實(shí)例展示: SQL>CREATE USER David IDENTIFIED EXTERNALLY; SQL>GRANT CONNECT, RESOURCE, DBA TO David; SQL>exit $ sqlplus David SQL>SHOW USER; USER is "David" SQL>
在上面的實(shí)例中,如果在Linux環(huán)境下進(jìn)行此操作,該用戶需要首先登錄Linux系統(tǒng),然后使用相同的用戶名(David)以SQL*Plus登錄Oracle。在這種情況下,Oracle將在本地計(jì)算機(jī)上查找相同的用戶名,并使用該本地用戶憑證進(jìn)行驗(yàn)證和登陸。
本地OS認(rèn)證也可以在Windows操作系統(tǒng)中使用。與Linux不同,Windows支持不同類型的用戶憑據(jù),例如本地計(jì)算機(jī)賬戶、域賬戶,以及Microsoft Active Directory等等。因此,可以在Windows系統(tǒng)上使用多個(gè)本地OS用戶進(jìn)行訪問控制。
實(shí)例展示: SQL>CREATE USER DBO IDENTIFIED EXTERNALLY; SQL>GRANT CONNECT, RESOURCE, DBA TO DBO; SQL>exit C:\>sqlplus DBO SQL>SHOW USER; USER is "DBO" SQL>
本地OS認(rèn)證可以進(jìn)一步增強(qiáng)對(duì)計(jì)算機(jī)的安全性。例如,在數(shù)據(jù)庫中創(chuàng)建所有管理員用戶的組(例如DBAs)以及該組允許的特權(quán)。如果某個(gè)管理員離開了公司,則可以從操作系統(tǒng)中簡(jiǎn)單地禁用其用戶,從而同時(shí)禁用其在數(shù)據(jù)庫中的訪問權(quán)限。
雖然本地OS認(rèn)證在某些情況下是一種方便,快速的解決方案,但在大型企業(yè)環(huán)境中,推薦使用Oracle的集中身份驗(yàn)證,例如基于LDAP的身份驗(yàn)證。該解決方案允許緩存企業(yè)范圍內(nèi)用戶名及其密碼,以及更具分級(jí)的訪問控制。
總之,Oracle OS認(rèn)證是一種便捷的登錄管理方式,適合于小型企業(yè)或本地計(jì)算機(jī)管理員的訪問控制。然而,在大型企業(yè)環(huán)境中,建議使用高級(jí)身份驗(yàn)證解決方案以提高安全性和訪問控制。