(第2講)oracle的用戶管理

oracle安裝成功後,會默認生成三個用戶:

sys用戶:超級管理員,全縣最高,他的角色是dba,,密碼默認是change_on_install;

system用戶:是系統管理員,權限也比較高,他的角色是dbaoper;密碼默認是manager;

scott用戶:普通用戶,密碼默認是tiger。

sys  與 system 的區別:

sys 有create database 的權限,而system 沒有,其他相似。

1、創建用戶:在oracle中創建一個新的用戶使用create user 語句,一般要具有dba(數據庫管理員)的權限才能使用

eg: create user xiaomign identified by m123;//create user 是關鍵詞,xiaoming是用戶名。

                                                                 //identified by 是關鍵詞,m123是密碼

 

2、給用戶修改密碼:

(1)給自己修改密碼的SQL語句:

          password  用戶名;//用戶名也可以不用

(2)如果給別人修改密碼則需要具有dba 權限的或者擁有  alter user 的系統權限,修改密碼的SQL語句是:

            alter user 用戶名 identified by 新密碼;


3、刪除用戶:一般以dba的身份去刪除某個用戶。自己刪除自己是不允許的。刪除用戶的SQL語句如下:

           drop user  用戶名 [cascade];//帶上cascade是指將該用戶創建的表都刪除

如果在刪除用戶時,注意如果要刪除的用戶已經創建了表,需要在刪除的時候

帶上一個參數:cascade。

4、權限的賦予和收回(grant、revoke)

新創建的用戶:沒有登錄數據庫的權限,需要爲其指定相應的權限,

給一個用戶賦權限使用命令 grant;收回權限使用命令revoke。

可以使用system或者sys給需要登錄權限的用戶賦權限。

(1)賦權限的SQL語句如下:

        grant connect to xiaoming ;

        然後授權成功就可以登錄了:conn xiaoming/m123;

         grant resource to xiaoming;//授權成功,就可以建表了

         create table test(useId varchar2(30),username varchar2(30));

(2)希望小明去查詢scott的emp表:先授權給xiaoming---再用xiaomign登錄---查找,

        grant select on emp to xiaoming;//system.sys.scott可以授權給xiaoming

        conn xiaoming/m123;

       select * from scott.emp;//提到方案的概念,找Scott下的emp表

(3)希望小明去修改scott的emp表:先授權給xiaoming--再用xiaomign登錄--修改,

      grant update on emp to xiaoming;//system.sys.scott可以授權給xiaoming

      conn xiaoming/m123;

      update * from scott.emp;//提到方案的概念,找Scott下的emp表

(4)希望小明去修改、刪除、查詢、添加scott的emp表:

先授權給xiaoming--再用xiaomign登錄--修改、刪除、查詢、添加

       grant all on emp to xiaoming;//system.sys.scott將emp這張表的所有權限授權給xiaoming

(5)scott希望收回xiaoming對emp的全部權限

         conn  scott/tiger;

         revoke select on   emp   from xiaoming;//收回xiaoming 查詢emp表的權限

         select *  from  scott.emp;//會得到表或視圖不存在

5、切換用戶的SQL語句: conn system/manager;

6、對權限的維護

    //希望xiaoming 用戶可以去查詢scott的emp表,並且希望xiaoming 能把這種權限給別人;

    (1)如果是對象權限,直接在後邊加上with grant option

      grant select on emp to xiaoming with grant option;//設置xiaoming可以給別的用戶賦權限

     conn system/manager;//連上system用戶

     create user xiaohong identified by m123;//用system用戶創建xiaohong用戶

     grant connect to xiaohong;//給xiaohong 賦登錄數據庫的權限

     conn xiaoming/m123;//登錄xiaoming 用戶,嘗試用xiaoming用戶給xiaohong賦權限

      grant  select on scott.emp to xiaohong;//給xiaohong賦查詢scott的emp表的權限

    (2)如果是系統權限,直接在後邊加上withadmin option

      grant connect to xiaoming with admin option;//設置xiaoming可以給其他用戶賦相同的系統權限

注意:如果scott把xiaoming對emp表的查詢權限收回,那麼xiaohong的權限還有嗎?沒有了,被回收了

    

7、使用profile管理用戶口令

profile是口令限制,資源限制的命令集合,當建立數據庫時,oracle會自動建立名稱爲default的

profile。當建立用戶沒有指定profile選項,那oracle就會將default分配給用戶。

(1)鎖定賬戶:指定該用戶登錄時最多可以輸入密碼的次數,也可指定用戶賬戶鎖定的時間,一般

用dba的身份去執行該命令。

例如:指定scott這個用戶最多隻能嘗試3次登錄,鎖定時間爲2天,

創建profile文件的SQL語句:

//創建配置文件

create profile lock-account  limit  falied_login_attempts3  password_lock_time 2;//紅色部分是可以改變的

//將配置文件用在tea用戶上

alter user tea profile lock_account;

(2)給用戶解鎖

alter user tea account unlock;//紅色是可改變的,是指需要解鎖的用戶

(3)終止口令

爲了讓用戶定期修改密碼可以使用終止口令的指令來完成,同樣這個命令也需要dba身份來操作。

例子:給前面創建的用戶xiaoming創建一個profile文件,要求該用戶每隔10天要修改自己的登錄密碼,寬限期爲2天。

create profile myprofile limit password_life_time10 password_grace_time 2;

alter user xiaoming profilemyprofile;//把配置文件分配給用戶

(4)口令歷史

如果希望用戶在修改密碼的時候不能使用以前的密碼,可使用口令歷史,這樣oracle就會將口令修改的信息存放到

數據字典中,這樣當用戶修改密碼時,oracle就會新舊密碼進行比較,如果發現一樣,就會提示用戶重新輸入密碼

     1)建立profile

      create profileprofile_history limit password_life_time 10 password_grace_time 2

password_reuse_time  10;

    password_reuse_time是指  指定口令可以重用時間(即10天后就可以重用)

    2)分配給某個用戶

     alter userxiaoming profile myprofile;

(5)刪除profile

當不需要某個profile文件時,可以刪除該文件,

     drop  profile password_history [cascade];

————————————————————————————————————————————————

1、oracle的權限分爲兩種:系統權限(140多種)和對象權限(25多種)。

系統權限:是指用戶對數據庫的相關權限;比如說建庫、建表、建索引、建存儲過程、登錄數據庫、修改密碼;

對象權限:是指用戶對其他用戶的數據對象操作的權限。簡單的劃分有:select/insert/

/update/delete/all/create all......

2、數據對象:這個用戶創建的表、觸發、視圖、存儲過程等數據庫對象。

數據庫中不只是有表,還有存儲過程、觸發器、視圖、函數、過程、包、類型、角色、表空間等。

3、角色:事先定義一些角色(比如connect,dba,resourse),當新建一個數據庫時,需要一些基本的授權,就是批量的將一些基本的基本權限給一個角色,就比如說一個人的職位是市長,就將一系列市長的權限給他。

角色分爲自定義角色和預定義角色。如果把dba賦給用戶,該用戶就成了數據管理員。

4、方案:

5、oracle中可以有兩張一樣名字的表,因爲oracle中是以用戶爲單位進行管理的,所以可以再不同用戶下有相同名字的表。

6、

發佈了84 篇原創文章 · 獲贊 21 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章