<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • ORACLE數據庫中的權限和角色

    時間:2024-08-17 18:50:48 Oracle認證 我要投稿
    • 相關推薦

    ORACLE數據庫中的權限和角色

      Oracle數據庫是一種大型關系型的數據庫,我們知道當使用一個數據庫時,僅僅能夠控制哪些人可以訪問數據庫,哪些人不能訪問數據庫是無法滿足數據庫訪問控制的。DBA需要通過一種機制來限制用戶可以做什么,不能做什么,這在Oracle中可以通過為用戶設置權限來實現。權限就是用戶可以執行某種操作的權利。而角色是為了方便DBA管理權限而引入的一個概念,它實際上是一個命名的權限集合。

      1 權限

      Oracle數據庫有兩種途徑獲得權限,它們分別為:

     、 DBA直接向用戶授予權限。

      ② DBA將權限授予角色(一個命名的包含多個權限的集合),然后再將角色授予一個或多個用戶。

      使用角色能夠更加方便和高效地對權限進行管理,所以DBA應該習慣于使用角色向用戶進行授予權限,而不是直接向用戶授予權限。

      Oracle中的權限可以分為兩類:

      •系統權限

      •對象權限

      1.1 系統權限

      系統權限是在數據庫中執行某種操作,或者針對某一類的對象執行某種操作的權利。例如,在數據庫中創建表空間的權利,或者在任何模式中創建表的權利,這些都屬于系統權限。在Oracle9i中一共提供了60多種權限。

      系統權限的權利很大,通常情況下:

     、 只有DBA才應當擁有alter database系統權限,該權限允許用戶對數據庫物理結構和可用性進行修改。

      ② 應用程序開發者一般應該擁有Create Table、Create View和Create Type等系統權限,用于創建支持前端的數據庫模式對象。

      ③ 普通用戶一般只具有Create session系統權限(可以通過Connection角色獲得),只有Create Session系統權限的用戶才能連接到數據庫

     、 只有具有Grant Any PRivilege系統權限用戶,或者獲取了具有With Admin Option選項的系統權限的用戶,才能夠成為其它用戶授予權限。

      1.2對象權限

      對象權限是針對某個特定的模式對象執行操作的權利。只能針對模式對象來設置和管理對象權限。

      對于模式對象:表、視圖、序列、存儲過程、存儲函數、包都可以對象設置權限。不同類型模式對象具有不同的對象權限。比如,表、視圖等對象具有查詢(Select)、修改(Update)、刪除(Delete)等對象權限,而存儲過程、存儲函數等對象則具有執行(Execute)等對象權限。

      但是并不是所有的模式對象都可以設置對象權限。比如簇、索引、觸發器以及數據庫鏈接等模式就不具有對象權限。這些模式對象的訪問控制是通過相應的系統權限來實現的,比如,要對索引進行修改,必須擁有Alter Any Index系統權限。

      用戶自動擁有他的模式中所有對象的全部對象權限,他可以將這些對象權限授予其他的用戶或角色。比如,Test1用戶創建了一個表Table1,在沒有授權的情況下,用戶Test2不能查詢、修改、刪除這個表。如果Test1將ETP表的Select對象權限授予了Test2,則該用戶就可以查詢Table1表了。如果在為其它用戶授予對象權限時用了With Grant Option選項,被授予權限的用戶還可以將這個權限在授予其他用戶。

      2 角色

      2.1角色的概念

      角色就是多個相關權限的命名集合。通過角色來進行對用戶授予權限,可以大大簡化DBA的工作量。比如,處于統一部門中的30多個用戶都需要訪問數據庫中的一系列表,DBA可以將這些表的中合適的對象權限授予一個角色,然后在把這個角色授予這些用戶,這樣進行操作要比為沒有用戶進行授權要便捷多了,而且要對這些用戶的權限進行統一修改,只需要修改角色的權限即可。

      2.2角色的優點

      通過角色為用戶授予權限,而不是直接向各個用戶授權,具有以下優點:

      •簡化權限管理 DBA將用戶群分類,然后為每一類用戶創建角色,并將該角色授予這類用戶所需要的權限,最后在將改角色授予該類中的各個用戶。這樣不僅簡化了授權操作,而且當這類用戶的權限需求發生改變時,只需要把角色的權限進行改動,而不必修改每一位用戶的權限。

      •動態權限管理 角色可以被禁用或激活。當角色被禁止使用時,擁有該角色的用戶不再擁有授予改角色的權限了。這樣就可以對多個用戶的權限進行動態控制了。

      •靈活的編程能力 角色是存儲在數據字典中的,并且可以為角色設置口令。這樣就能夠在應用程序中對角色進行控制。比如禁用或者激活等操作。

      下面以Oracle9i為例,給出具體的實現用戶授權:

      (1)設定各種角色,及其權限

      CREATE ROLE checkerrole DENTIFIEDBYxm361001;

      CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

      GRANT SELECT,UPDATE ON

      account.paytable TO checkerrole;

      GRANT CONNECT TO defaultrole;

      (2)創建用戶

      CREATE USER xiaoli IDENTIFIEDBY xiaoli;

      (3)授權

      GRANT checkerrole TO xiaoli;

      GRANT defaultrole TO xiaoli;

      (4)設定用戶缺省的角色

      ALTER USER xiaoli DEFAULTROLE defaultrole;

      (5)注冊過程

      CONNECT xiaoli/xiaoli@oracle

      此時用戶只有其缺省角色的權限。

      (6)激活角色

      SET ROLE checkerrole IDENTIFIEDBY xm361001;

      ----操作成功后,xiaoli擁有checkerrole的權限。

      ----這里的角色和口令是固定的,在應用系統中可以由應用管理人員自行設置則更為方便安全

    【ORACLE數據庫中的權限和角色】相關文章:

    Oracle數據庫語句大全10-08

    ORACLE數據庫碎片的整理08-18

    oracle數據庫基本語句08-21

    Oracle數據庫認證層次08-29

    Oracle數據庫的基本介紹09-04

    Oracle數據庫SQLPLUS介紹10-09

    Oracle數據庫SELECT語句10-25

    Oracle 數據庫查詢小技巧10-17

    oracle數據庫基礎知識07-26

    Oracle數據庫基本知識09-13

    主站蜘蛛池模板: 国产亚洲综合成人91精品| 精品国产美女福利到在线不卡| 亚洲精品色婷婷在线影院| 久久亚洲精品视频| 无码人妻精品中文字幕| 精品国产一区二区三区AV性色| 国产精品网站在线观看| 亚洲国产精品无码久久一区二区| 国产一区二区三精品久久久无广告| 国产精品久久久久久影院 | 亚洲精品电影网| 国产亚洲欧美精品久久久| 亚洲国产精品综合久久一线| 国内精品欧美久久精品| 国产av无码专区亚洲国产精品| 国产夫妇精品自在线| 岛国精品一区免费视频在线观看 | 亚洲欧美日韩精品久久亚洲区| 精品成人av一区二区三区| 国产精品电影在线| 成人免费精品网站在线观看影片| 国产精品影音先锋| 精品亚洲综合久久中文字幕| 99久久这里只有精品| 97精品国产91久久久久久| 98视频精品全部国产| 国产精品无码成人午夜电影| 精品国精品国产自在久国产应用| 无码国产精品一区二区免费16| 亚洲精品午夜无码专区| 亚洲精品无码mv在线观看网站| 最新精品国偷自产在线| 亚洲精品97久久中文字幕无码| 亚洲国产精品人人做人人爱| 亚洲精品高清在线| 亚洲国产精品无码久久久不卡 | 亚洲精品狼友在线播放| 无码精品国产一区二区三区免费 | A级毛片无码久久精品免费| 国产69精品久久久久99尤物| 国产精品污WWW一区二区三区|