夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks

          在全局數據庫ORCL下創建一個用戶
          首先在開始--》運行——》sqlplus,然后輸入 sys/change_on_install as sysdba
          以system權限登陸進去
          然后可以進行操作:
          創建用戶 create user test indentified by test;
          這樣就創建了一個用戶名密碼都為test的用戶
          但這個時候test還是不能登陸成功的,我們需要賦予相應的權限
          首先賦予create session的權限
          grant create session to test;
          這樣test用戶就能成功登陸進去
          但是此時用戶還是不能創建表 我們需要賦予用戶創建表的權限:
          grant create table to test;
          但是用戶此時還不能創建表 因為需要有使用表空間的權限(相當于 用戶有了進房間的鑰匙 但是沒有進大門的鑰匙)
          所以也應該賦予相應的權限
          grant unlimited tablespace to test;
          這個時候用戶就擁有了創建表的權限 由于表是用戶test的 相應的他就擁有了對創建的表的增刪查改的權限了
          我們要查看用戶擁有什么權限可以通過查詢一個系統的視圖(數字字典)
          select * from user_sys_privs;
          這樣就可以知道當前用戶的權限

          撤銷權限 revoke create table from test;

          場景:
          用戶test   用戶test1
          test1的用戶創建了個表mytab 并且插入了一些數據
          那么 test用戶是否可以訪問到test1的mytab怎么訪問?
          答:不可以,必須先授權
          test1必須授權給test :grant select on mytab to test;
          那么這個時候test可以通過 select * from test1.mytab;來訪問mytab中的數據
          如果想把某個表(對象)的所有權限都賦予給test那么可以:
          grant all on mytab to test;
          撤銷所有權限
          revoke all on mytab to test;


          總結:
             對于系統權限由sys來做 
             對于對象權限由 誰擁有誰授權
             系統權限:
             grant create session to test;
             grant create table to test;
             grant unlimited tablespace to test;

             revoke create session from test;
             revoke create table from test;
             revoke unlimited tablespase from test;

             grant create session to public;  //表示把創建表的權限賦予所有人

             select * from user_sys_privs;  //返回當前用戶的所有系統權限

             grant select on mytab to test;
             grant all on mytab to test;

             revoke select on mytab from test;
             revoke all on mytab from test;

             
             對象權限可以控制到列 (更新和插入操作)
             grant update(name) on mytab to test;
             grant insert(id) on mytab to test;

             select * from user_col_privs;
             注意:查詢和刪除不能控制到列   
             需要有commit的 insert update insert

            權限的傳遞
            系統權限的傳遞:
            grant alter table to A with admin option;
            那么A可以通過把該權限傳遞給B,如果想B也可以傳遞下去那么可以也帶上with admin option
            grant alter table to B;
            對象權限的傳遞:
            grant select on mytab to A with grant option;
            那么A可以把在表mytab的select權限賦予給B,如果B想也能傳遞該select權限也可以帶上with grant option
            grant select on mytab to B;

          --------------------------------------------------------------------------------------------------

          --創建用戶
          create user keeltest identified by keeltest;
          --分配權限
          grant create session,create table,create view ,create any index to keeltest;
          grant unlimited tablespace to keeltest;

          posted on 2010-06-10 18:04 HUIKK 閱讀(517) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 铜川市| 定兴县| 泾川县| 遂平县| 神农架林区| 西平县| 滁州市| 呈贡县| 曲阳县| 清镇市| 灵璧县| 宿州市| 辽中县| 探索| 洪泽县| 甘南县| 张家港市| 六枝特区| 屯昌县| 新丰县| 剑阁县| 九江市| 景谷| 宣威市| 承德县| 洪江市| 永安市| 湖南省| 陇南市| 金堂县| 苍南县| 龙山县| 福海县| 宜州市| 南汇区| 奉化市| 松阳县| 江油市| 元阳县| 西和县| 岢岚县|