a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

關于Oracle數據庫中的N層認證具體介紹

2024-08-29 13:50:43
字體:
來源:轉載
供稿:網友
開發訪問數據庫的Web應用程序時,大多數開發人員要設置一個連接池(一批預先打開的由中間層保持的數據庫會話期)來提高連接速度。應用程序從連接池獲得連接,要比為每一個用戶請求創建新的連接快得多。 連接池的缺點是每個用戶要作為一個單一的、高級權限數據庫賬戶向數據庫注冊。盡管Web用戶通常是用他們唯一的身份向應用程序注冊,但只要數據庫已經被連接,則所有的系統用戶就都是匿名的。 Oracle數據庫在安全性方面有很好的聲譽,因而利用它的重要安全性功能來執行你的應用程序安全性政策是非常適宜的。假如已知用戶身份,該數據庫就能夠進行審計并實施基于角色的和細粒度化的訪問控制,包括虛擬專用數據庫(Virtual PRivate Database,VPD)。 Oracle至少提供兩種在所有各層(tiers)保持用戶身份的方法:代理認證和應用程序上下文參數CLIENT_IDENTIFIER。 代理認證 代理認證使中間層能夠用"普通(generic)"或"應用程序(application)"賬戶對數據庫的訪問進行認證,然后即代表真實的用戶建立輕便會話。一個代理會話可以通過提交用戶的辨認名(Distinguished Name (DN)),即一個x.509證書,或全局唯一用戶名來建立。 例如,為了答應用戶Kyle通過具有角色admin的中間層(它作為用戶webapp保持一個連接池)連接到數據庫,數據庫治理員首先授予如下的權限:ALTER USER Kyle GRANT CONNECT THROUGH webapp WITH ROLE admin; 接著,該應用程序代碼(在這里是一個servlet)翻譯從Web接收到的用戶名并建立如下所示的代理會話:
    String userName = request.getRemoteUser();    InitialContext initial =  new InitialContext();  OracleOCIConnectionPool ds =  (OracleOCIConnectionPool)  initial.lookup("jdbc/OracleOciDS");  oracle.jdbc.OracleConnection conn = null;    Properties p = new Properties();  p.setProperty(PROXY_USER_NAME, username);  conn = ds.getProxyConnection(  PROXYTYPE_USER_NAME, p);
   代理認證答應使用包括腳色在內的所有數據庫安全性功能,但是它要求你設置真實的數據庫用戶(數據庫或企業)。 使用CLIENT_IDENTIFIER 但是,假定你有成百上千的用戶,而你不想為每個用戶都設立一個Oracle數據庫或企業用戶。那么你也可以通過使用應用程序上下文將用戶身份從中間層傳遞到該數據庫。 應用程序上下文是一組可用于數據庫會話的名字/值對。Oracle9i有預定義的應用程序上下文名字空間USERENV,它含有用戶會話信息,包括預定義的屬性CLIENT_IDENTIFIER。這一屬性通常用作從全局應用程序上下文選取值的會話標識符,但是我們將稍加變更,將它用于保持Web用戶標識符。 從servlet或Enterprise javaBeans (EJB)會話bean,應用程序代碼將從Web請求檢索用戶名,然后調用內部PL/SQL過程設置CLIENT_IDENTIFIER:
    String userName = request.getRemoteUser();  ...(set up the JDBC connection)...  PreparedStatement ps = conn.prepareCall(  "begin dbms_session.set_identifier(?);  end;");  ps.setString(1, username);  ps.execute();    SELECT sys_context('userenv', 'client_identifier') FROM dual;
   使用這種方法沒有使用代理認證那樣安全。因為任何人都能設置這個上下文值,你必須借助額外的安全性措施,如細粒度的訪問控制和安全的應用程序角色等。你的應用程序還應在將數據庫連接返回給連接池之前清除CLIENT_IDENTIFIER屬性。


上一篇:Oracle非法數據庫對象引起錯誤及解決

下一篇:Oracle處理多媒體信息的原理及展望

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 午夜激情网站 | 中文在线一区 | 日本一区二区三区四区 | 成人一区在线观看 | 亚洲国产精品一区二区久久 | 国产九色视频 | 久久人人爽人人爽人人片av不 | 久久精品美女 | 越南一级毛片免费 | 91丁香 | 亚洲成人一区 | 亚洲啊v | 黑人巨大精品欧美一区二区一视频 | av不卡在线看 | 成人午夜在线 | 午夜视频在线观看网站 | 成人免费在线观看 | av免费在线播放 | 国产黄色大全 | 日韩精品视频在线观看网站 | 国产视频一区二区三区四区 | 一区久久 | 久草福利在线视频 | 中文精品一区二区三区 | 国产精品二区三区在线观看 | 日本不卡网站 | 一级女性全黄久久生活片免费 | 欧美日韩亚洲国产 | 欧美精品福利视频 | 中文一区二区 | 在线播放黄 | 在线观看免费av的网址 | 视频一区二区中文字幕日韩 | hd国产人妖ts另类视频 | 亚洲精品99 | 久久久精品 | 神马午夜| 婷婷激情五月 | 国产高清av在线一区二区三区 | 久久性 | 欧美性生活免费观看 |