Oracle-用戶權限與管理

Oracle-用戶權限與管理

目標:

1,掌握建立用戶、概要文件的使用

2,掌握系統權限的含義及授予、回收

3,掌握對象權限的含義及授予、回收

4,掌握角色的含義、對角色授予權限、把角色分配給用戶

 

Oracle 11g默認用戶

SYS:用於維護系統信息和管理實例,數據庫所有的數字字典表和視圖存儲在SYS模式中;

SYSTEM:默認的系統管理員,管理數據庫用戶、權限和存儲等;

SCOTT:scott用戶是Oracle數據庫的一個示範賬戶,在數據庫安裝時創建

 

Oracle 11g創建用戶

1.想要連接到Oracle數據庫,需要有一個用戶賬戶;

2.每個用戶都有一個默認表空間和臨時表空間;

3.命令語法:create user test1 identified by test1; [創建一個用戶test1,密碼是test1]

 

 

Oracle 11g 概要文件 profile

     Oracle系統爲了合理分配和使用系統的資源提出了概要文件的概念。所謂概要文件,就是一份描述如何使用系統的資源(主要是CPU資源)的配置文件。將概要文件賦予某個數據庫用戶,在用戶連接並訪問數據庫服務器時,系統就按照概要文件給他分配資源。 

    Profile(概要文件)管理用戶1

當創建用戶時候,如果沒有指定profile,那麼Oracle把名字叫default的profile賦予給用戶。

   指定test1只能最多輸入3次密碼,

   創建profile文件:create  profile  pro1 limit failed_login_attempts 3 password_lock_time 2;

   其中,FAILED_LOGIN_ATTEMPTS:用於指定聯繫登陸的最大失敗次數. PASSWORD_LOCK_TIME:用於指定帳戶被鎖定的天數. 

創建屬於pro1的用戶:

    create user   aa identified by aa profile pro1;

修改用戶的profile文件:

alter user test1 profile pro1;

Profile(概要文件)管理用戶2

解除鎖定: alter  user  test1  account  unlock;

   終止口令:需要每隔10天修改密碼,最多寬限2天:ALTER PROFILE "PRO1" LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2。

  刪除profile:drop profile pro1 cascade; 使得test1的profile重新變成了default 

 

Oracle 11g-權限【系統權限+對象權限】

q權限指的是執行特定命令或訪問數據庫對象的權利

q權限有兩種類型,系統權限和對象權限

q系統權限允許用戶執行某些數據庫操作,如創建表就是一個系統權限

q對象權限允許用戶對數據庫對象(如表、視圖、序列等)執行特定操作

系統權限

授予用戶權限,可以是系統權限或者對象權限。

   GRANT privilege [,privilege…]

   TO  user [, user|role, PUBLIC…] 

    [WITH ADMIN OPTION]; 說明:包含了WITH ADMIN OPTION,只能是系統權限。

收回系統權限REVOKE privilege FROM user;

例子:

賦予test1用戶連接到數據庫的系統權限:grant create session to test1;

賦予test1用戶創建表的系統權限:grant create table to test1;

賦予test1用戶任意使用表空間的系統權限:grant unlimited tablespace to test1;

 

對象權限

   對象權限:訪問某個用戶的特定對象(如表、視圖等)

的對象權限(select on scott.student) 

 GRANT object_privilege [columns…]

   ON  object  TO  user [, user|role, PUBLIC…] 

    [WITH GRANT OPTION];

  收回對象權限REVOKE:

   REVOKE privilege  ON object 

   FROM {user|role|PUBLIC};

例:

賦予test1用戶查詢Scott的emp表的權限:grant select on scott.emp to test1;

       賦予test1用戶增刪改查Scott的emp表的權限:grant all on scott.emp to test1;

       收回test1用戶查詢Scot的emp勸限:revoke select on scott.student from test2;

       授予精確到列上的對象權限:允許test1用戶更新scott中emp表的ename、sal列:              grant update(ename,sal) on scott.emp to test1;


Oracle授權中的with admin option 和with grant option


[with admin option]:   當給一個用戶授予系統權限時帶上with admin option,他可以把此權限授予給其他用戶、角色,而在revoke授予給這個用戶的系統權限時不會級聯回收他授予給其他用戶的權限。如授予給A用戶p系統權限時帶有with admin option參數,此時A把系統權限p授予給用戶B,然後revoke收回了授予A用戶的p權限,這時A授予給B的p權限不會被級聯收回,就是說B還擁有p系統權限。

[with grant option]:而對象權限的參數with grant option卻會級聯收回對象權限。如授予給A用戶o對象權限時帶有with grant option參數,A把o對象權限grant給用戶B,此時如果revoke授予給A的o對象權限,會把B被授予的o對象權限也revoke。

Oracle 11g-角色管理

角色管理:角色是一組相關權限的組合,可以將權限授予角

色,再把角色授予用戶,以簡化權限管理。

(1)創建角色CREATE ROLE,應該具有CREATE ROLE系統權限。  

   CREATE ROLE role_name;

(2) 授予角色權限,可以是系統權限或者對象權限。

   GRANT privilege TO ROLE;

例: grant create session ,create any table, drop any table to role1;

(3) 將角色授予用戶

    GRANT role TO user;

例: grant role1 to test2;

(4) 從用戶收回角色

    REVOKE  role  FROM  user;

例子:

CONNECT角色允許test1用戶連接至數據庫,並創建數據庫對象:

Grant connect to test1;

RESOURCE角色允許test1用戶使用數據庫中的存儲空間:

Grant resource to test1;

 

Oracle 11g-更改和刪除用戶

例子:

修改test1用戶的密碼:alter user test1 identified by test111;

刪除test1用戶模式:drop user test1; [cascade 加上這個參數會把其創建的表都刪掉]

 

 

Oracle 11g-用戶權限與管理的練習題

1.創建新用戶ximing1,密碼是ximing1,查看系統的所有用戶名;

2.設置概要文件賦予給ximing1用戶,名字爲:ximing_profile ,要求:登陸3次失敗後鎖定用戶,鎖定時間2天,口令的有效期10天,可延遲2天后鎖定;登陸em查看結果;

3.嘗試三次錯誤登陸,待ximing1用戶被鎖定後,進行解鎖;

4.Ximing1用戶需要有連接到數據庫且創建表ABC;查看test1被授予的權利有哪些

5.Ximing1用戶可以查詢和修改scott.emp表,把scott.emp的sal值改爲1000;

6.創建test2用戶,與用戶test1進行級聯授權和收回權利的實驗,create session

7.創建用戶test3,創建角色role3,賦予連接數據庫,創建表的權利,將角色應用與用戶test3上

8.理解系統默認的幾個常用的角色:connect resource &&??

9.更改test3 的密碼爲test333

10.刪除test1、2、3用戶

 

答案:

1.用system用戶連接到數據庫

A:create user test1 identified by test1;

B:select username from dba_users;

2.

A:create profile ximing_profile limit failed_login_attempts 3 password_lock_time 2 password_life_time 10 password_grace_time 2;

B:alter user test1 profile ximing_profile;

3.

A:alter user test1 account unlock;

4.

A:grant create session to test1;

B:grant create table to test1;

C:grant unlimited tablespace to test1;

D:select * from dba_sys_privs d where d.grantee=TEST1;

5.

A:grant select on scott.emp to test1;

B:grant update on scott.emp to test1;

C:update scott.emp set sal=1000;

6.

A:create user test2 identified by test2;

B:Grant create session to test1 with admin option;//在system上

C:Grant create session to test2;//在test1用戶上

D:revoke create session from test1;//在system上

F:conn test2/test2@orcl; //成功,即使test1的create session收回,test2也沒有被收回

7.

A:create role role3

B:grant create session,create table,unlimited tablespace to role3;

C:grant role3 to test3;

D:select * from dba_roles;//查看有什麼角色

8.

A:connect角色:包含create session

Select * from dba_sys_privs d where d.grantee=CONNECT;

A:resource角色:包含基本上創建表的各種權利,很多

Select * from dba_sys_privs d where d.grantee=RESOURCE;

9.

alter user test3 identified by test333;

10.

drop user test1 cascade; 

drop user test2 cascade; 

drop user test3 cascade; 

[cascade]參數:如果用戶創建了表,需要加上此參數連帶把表刪除;

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章