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 totest1;
收回test1使用者查詢Scot的emp勸限:revoke select on scott.student from test2;
授予精确到列上的對象權限:允許test1使用者更新scott中emp表的ename、sal列: grant update(ename,sal) on scott.emp to test1;
[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/[email protected]; //成功,即使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]參數:如果使用者建立了表,需要加上此參數連帶把表删除;