国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 分布式數據庫遠程數據訪問的安全性

2024-08-29 13:38:48
字體:
來源:轉載
供稿:網友

  ---- 數 據 庫 的 安 全 性 是 指 保 護 數 據 以 防 止 非 法 用 戶 使 用, 避 免 數 據 被 有 意 或 無 意 地 丟 失、 泄 露 或 破 壞。 隨 著 企 業CIMS 工 程 的 實 施 和 各 個 子 系 統 的 建 立, 各 個 子 系 統 之 間 需 要 經 常 共 享 數 據, 而 不 同 的 子 系 統 往 往 分 布 在 不 同 的 服 務 器 中。 如 何 安 全 有 效 地 訪 問 各 系 統 所 需 的 數 據, 防 止 數 據 庫 數 據 的 丟 失 以 及 非 法 用 戶 的 侵 入, 以 及 保 證 各 系 統 的 物 理 位 置 與 調 用 的 應 用 程 序 無 關( 即 保 證 各 系 統 的 位 置 透 明 性), 是 數 據 庫 管 理 人 員 所 面 臨 的 重 要 問 題。
  
  遠 程 數 據 庫 訪 問
  ---- 分 布 式 數 據 庫(Distributed Database) 是 存 儲 在 多 個 計 算 機 上 的 一 組 數 據 庫, 但 表 現 在 用 戶 面 前 的 是 單 個 邏 輯 的 數 據 庫。 也 就 是 說, 其 中 的 每 個 數 據 庫 都 由 它 本 地 的 數 據 庫 管 理 系 統 來 控 制, 它 們 彼 此 之 間 的 管 理 和 維 護 都 是 分 開 的 和 互 不 依 賴 的。 但 是 在 若 干 數 據 庫 中 的 數 據 可 以 同 時 存 在 和 修 改, 好 像 在 一 個 數 據 庫 中 似 的, 有 很 高 的 透 明 性。 這 樣 使 得 對 遠 程 數 據 的 存 取 非 常 簡 單, 不 需 要 知 道 對 象 到 底 在 哪 里, 也 使 對 象 可 以 移 動 位 置 而 不 會 影 響 最 終 用 戶 或 數 據 庫 應 用。
  ---- 遠 程 數 據 庫 訪 問 是 通 過 建 立 數 據 庫 鏈 路 來 實 現 的, 數 據 庫 鏈 路 是 通 過Oracle 通 信 軟 件SQL *Net 來 工 作 的。 各 服 務 器 上 的SQL *Net 要 根 據 網 絡 的 情 況 來 配 置, 網 絡 中 每 一 臺 服 務 器 都 有 一 個 特 定 的 名 稱, 這 個 名 稱 在 數 據 庫 鏈 路 中 稱 為 連 接 串(connect string), 如 圖1 所 示。 如 果 服 務 器server1 上 的 用 戶A 要 訪 問server2 上 的 用 戶B 的 表emp, 首 先 要 在 服 務 器server1 的 用 戶A 中 建 立 一 條 數 據 庫 鏈 路, 命 令 如 下:
  
  ---- SQL>create public database link linkname connect to username identified by passWord using‘connect string’
  
  ---- 其 中,linknam 為 數 據 庫 鏈 路 名, 這 里 可 取 為Mylink;username 為 用 戶B 的 名 稱;Password 為 用 戶B 的 口 令;connect string 為server2。
  
  ---- 這 樣 在 服 務 器server1 中, 用 戶A 就 可 以 通 過 下 列 語 句 來 訪 問 服 務 器server2 中 用 戶B 的 表emp:
  
  ---- SQL>select * from B.emp@mylink;
  
  ---- 為 了 保 證 數 據 庫 訪 問 的 透 明 性, 在 用 戶A 下 可 以 建 立 下 面 的 同 義 詞:
  
  ---- SQL>create synonym emp for b.emp@mylink;
  
  ---- 這 樣 用 戶A 就 可 以 用 下 面 命 令 來 訪 問 用 戶B 的 表emp:
  
  ---- SQL>select * from emp;
  
  本 地 數 據 庫 訪 問 與 遠 程 數 據 庫 訪 問 的 安 全 性 比 較
  ---- 本 地Oracle 數 據 庫 可 以 有 許 多 個 用 戶, 用 戶 之 間 是 相 互 獨 立 的, 如 果 不 進 行 授 權, 它 們 之 間 就 無 法 進 行 相 互 訪 問。 如 圖2 所 示, 假 設server1 上 有 兩 個Oracle 用 戶G 和H, 用 戶G 要 訪 問 用 戶H 的 表emp, 則 在 用 戶B 下 要 執 行 下 列 命 令:
  ---- SQL>grant select on emp to g;
  
  ---- 這 樣 用 戶H 就 可 以 如 此 訪 問 表empz:
  
  ---- SQL>select * from g.emp
  
  ---- 同 樣 可 在 用 戶G 下 建 同 義 詞:
  
  ---- SQL>create synonym emp for g.emp;
  
  ---- 根 據 需 要 還 可 以 將emp 的insert、update 和delete 等 特 權 授 予 用 戶H, 如 果 只 想 讓 表emp 的 某 些 列 讓 用 戶H 操 作, 就 可 在 表emp 的 相 應 列 上 建 立 視 圖, 并 將 視 圖 的 特 權 授 予 用 戶H 即 可, 這 樣 就 保 證 了 用 戶G 只 能 訪 問 用 戶H 授 權 的 表, 數 據 庫 的 安 全 性 在 這 方 面 就 得 到 了 保 證。
  
  ---- 對 于 分 布 式 遠 程 數 據 庫, 如 圖3 所 示, 假 如 用 戶A 要 訪 問 用 戶b1,b2, …bn , 則 在 用 戶A 下 要 建 立n 條 鏈 路。
同 樣 如 果A 要 訪 問 用 戶c1,c2, …cn 也 要 建 立n 條 鏈 路。 如 果server1 上 也 有n 個 用 戶, 為 了 保 證server1 上 的 用 戶 對server2 和server3 上 各 用 戶 的 訪 問, 則 需 在server1 上 建2n ×n 條 鏈 路, 這 不 但 增 加 了 維 護 的 困 難, 而 且 這 種 方 法 在 應 用 中 也 難 以 實 施。
  
  ---- 通 過 分 析 數 據 庫 鏈 路 的 創 建 過 程, 可 以 看 出 數 據 庫 鏈 路 包 含 下 列 連 接 信 息:
  
  ---- 1. 遠 程 數 據 庫 的 主 機 名 稱。
  
  ---- 2. 遠 程 數 據 庫 上 的 一 個 有 效 賬 戶 名 稱。
  
  ---- 3. 此 賬 戶 的 口 令。
  
  ---- 在 使 用 時, 數 據 庫 鏈 路 實 際 上 將 作 為 一 個 用 戶 登 錄 到 遠 程 數 據 庫 中, 并 在 遠 程 數 據 訪 問 完 成 之 后 退 出 遠 程 數 據 庫。 一 個 數 據 庫 鏈 路 可 以 是 為 一 個 單 個 用 戶 所 私 有, 也 可 以 是 公 有 的, 即 本 地 數 據 庫 的 所 有 用 戶 都 可 以 使 用 此 鏈 路。
  
  ---- 利 用 數 據 庫 鏈 路 來 訪 問 遠 程 數 據 庫 具 有 下 列 缺 點:
  
  無 論 是 私 有 數 據 庫 鏈 路 還 是 公 共 數 據 庫 鏈 路, 都 將 遠 程 數 據 庫 用 戶 的 口 令 記 錄 在 本 地 數 據 庫 字 典 中, 如 果 遠 程 數 據 庫 用 戶 的 口 令 變 更, 則 本 地 數 據 庫 鏈 路 的 口 令 也 必 須 跟 著 變 更, 否 則 就 會 出 錯。
  
  同 時 本 地 數 據 庫 用 戶 知 道 遠 程 數 據 庫 用 戶 的 口 令, 因 此 遠 程 數 據 庫 用 戶 的 數 據 極 不 安 全, 且 本 地 用 戶 通 過 數 據 庫 鏈 路 訪 問 遠 程 表, 具 有 和 遠 程 表 所 有 者 同 樣 的 權 力, 這 同 樣 是 一 個 很 大 的 安 全 隱 患。
  ---- 為 了 解 決 上 述 兩 個 問 題, 首 先 必 須 盡 量 減 少 數 據 庫 鏈 路, 想 辦 法 控 制 利 用 數 據 庫 鏈 路 訪 問 遠 程 數 據 庫 表 的 用 戶 權 限。
  遠 程 數 據 庫 訪 問 的 安 全 措 施
  ---- 通 過 上 面 的 討 論, 我 們 自 然 想 到 是 否 能 將 保 證 本 地 數 據 庫 訪 問 安 全 性 的 具 體 措 施 與 遠 程 數 據 庫 訪 問 的 鏈 路 結 合 起 來, 充 分 利 用 兩 者 的 優 勢, 保 證 遠 程 數 據 庫 訪 問 與 本 地 數 據 庫 訪 問 一 樣 安 全 和 方 便。 具 體 步 驟 如 下:
  在 各 服 務 器 上 都 建 立 一 個 用 戶 名 相 同 和 口 令 相 同 的mid 用 戶, 它 除 了 具 有create session 特 權 外 沒 有 其 他 任 何 權 限, 其 主 要 功 能 是 將 遠 程 用 戶 通 過 數 據 庫 鏈 路 的 直 接 訪 問 變 為 間 接 訪 問。 它 的 角 色 就 像 一 個 安 全 衛 士, 將 非 法 訪 問 請 求 過 濾 掉, 從 而 保 證 數 據 庫 的 安 全。 它 的 另 一 個 優 點 是 用 戶 根 本 用 不 著 知 道 遠 程 數 據 庫 的 分 布 情 況, 而 可 以 像 訪 問 本 地 數 據 庫 一 樣 訪 問 遠 程 數 據 庫。
  
  在 各 服 務 器 上 以mid 用 戶 的 用 戶 名 和 口 令 建 立 公 共 的 數 據 庫 鏈 路, 針 對 相 連 的 服 務 器 各 建 一 條。 如 圖3 所 示 的 網 絡, 每 臺 服 務 器 只 需 建 兩 條 公 共 的 數 據 庫 鏈 路。
  
  在 每 臺 服 務 器 上, 將 別 的 服 務 器 需 要 訪 問 的 表 的 權 限 授 予mid 用 戶。
  
  在 每 臺 服 務 器 上, 建 立 所 需 訪 問 的 遠 程 表 的 私 有 或 公 共 同 義 詞。
  ---- 舉 例 說 明。 如 圖3 所 示, 假 如server1 上 的 用 戶A 要 訪 問server2 上 的 用 戶b1 的 表emp1, 則 用 戶b2 的 表emp2 在 遠 程server2 上 發 出 語 句:
  ---- SQL>GRANT SELECT ON b1.emp1 TO mid;
  
  ---- SQL>GRANT SELECT ON b2.emp2 TO mid;
  
  ---- 在 本 地server1 上 發 出 以 下 語 句:
  
  ---- SQL>CREATE PUBLIC DATABASE LINK midserver2 CONNECT TO mid IDENTIFIED BY mid USING 'connect string';
  
  ---- SQL>CREATE SYNONYM a.emp1_syn FOR b1.emp1@midserver2;
  
  ---- SQL>CREATE SYNONYM a.emp2_syn FOR b2.emp2@midserver2;
  
  總 結
  ---- 本 方 法 很 好 地 解 決 了 遠 程 數 據 庫 訪 問 的 安 全 性 問 題, 它 具 有 下 列 優 點:
  操 作 簡 單、 維 護 方 便、 安 全 性 強, 它 為 遠 程 數 據 庫 訪 問 設 置 了 一 道 防 火 墻。
  
  遠 程 數 據 庫 相 互 訪 問 的 數 據 鏈 路 減 到 了 最 少。 且 由 于 各 服 務 器 上 都 有 一 個 用 戶 名 和 口 令 相 同 的 用 戶, 根 本 不 必 擔 心 服 務 器 上 因 用 戶 口 令 的 改 變 而 影 響 數 據 鏈 路。
  
  便 于 管 理。 服 務 器 上 用 戶 需 要 訪 問 的 遠 程 數 據 庫 用 戶 的 那 些 表 都 可 以 在 相 應 的 數 據 字 典 中 查 到, 各 系 統 的 相 互 依 賴 關 系 十 分 清 楚。

  
  便 于 用 戶 的 遷 移。 當 服 務 器 發 生 故 障 而 需 要 將 用 戶 移 植 到 別 的 服 務 器 時, 只 需 更 改 各 服 務 器 上 的 同 義 詞, 應 用 程 序 不 需 要 改 變。
  
  通 過 數 據 庫 訪 問mid 代 理 用 戶, 并

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桑日县| 田东县| 德兴市| 江城| 禹州市| 安岳县| 上虞市| 南平市| 柞水县| 阿巴嘎旗| 莆田市| 东明县| 云林县| 嘉定区| 木里| 图木舒克市| 漯河市| 通许县| 鄂托克前旗| 安福县| 彭阳县| 满洲里市| 托里县| 新干县| 霍林郭勒市| 肃南| 南乐县| 大同市| 莱州市| 兴山县| 壤塘县| 连云港市| 碌曲县| 南丰县| 成武县| 余姚市| 扶风县| 元阳县| 柘城县| 哈密市| 金湖县|