程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle安全管理

oracle安全管理

編輯:Oracle教程

oracle安全管理


oracle安全管理

實驗目的

掌握Oracle的安全管理方法。

實驗內容

(1) 概要文件的建立、修改、查看、刪除操作。

(2) 用戶的建立、修改、查看、刪除操作。

(3) 權限的建立、修改、查看、刪除操作。

(4) 角色的建立、修改、查看、刪除操作。

實驗步驟

1、安全管理

(1) 創建概要文件。

① 利用企業管理器創建概要文件“ygbx+學號_pro”,要求在此概要文件中CPU/會話為1000,讀取數/會話為2000,登錄失敗次數為3,鎖定天數為10。

SQL> create profile "ygbx+1215115130_pro" limit

2 cpu_per_session 1000

3 logical_reads_per_call 2000

4 failed_login_attempts 3

5 password_lock_time 10

6 ;

配置文件已創建

② 利用SQL*Plus或iSQL*Plus,創建概要文件“ygbx+學號_pro_sql”,其結構與“ygbx+學號_pro”一致。

SQL> create profile "ygbx+1215115130_pro_sql" limit

2 cpu_per_session 1000

3 logical_reads_per_call 2000

4 failed_login_attempts 3

5 password_lock_time 10

6 ;

配置文件已創建

2) 查看概要文件。

① 利用企業管理器查看概要文件“ygbx+學號_pro”的信息。

SQL> desc dba_profiles;

名稱 是否為空? 類型

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

PROFILE NOT NULL VARCHAR2(30)

RESOURCE_NAME NOT NULL VARCHAR2(32)

RESOURCE_TYPE VARCHAR2(8)

LIMIT VARCHAR2(40)

② 利用SQL*Plus或iSQL*Plus,從DBA_PROFILES數據字典中查看“ygbx+學號_pro_sql”概要文件的資源名稱和資源值等信息。

SQL> set linesize 500

SQL> select * from dba_profiles

2 where profile='ygbx+1215115130_pro_sql';


PROFILE RESOURCE_NAME RESOURCE LIMIT

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

ygbx+1215115130_pro_sql COMPOSITE_LIMIT KERNEL DEFAULT

ygbx+1215115130_pro_sql SESSIONS_PER_USER KERNEL DEFAULT

ygbx+1215115130_pro_sql CPU_PER_SESSION KERNEL 1000

ygbx+1215115130_pro_sql CPU_PER_CALL KERNEL DEFAULT

ygbx+1215115130_pro_sql LOGICAL_READS_PER_SESSION KERNEL DEFAULT

ygbx+1215115130_pro_sql LOGICAL_READS_PER_CALL KERNEL 2000

ygbx+1215115130_pro_sql IDLE_TIME KERNEL DEFAULT

ygbx+1215115130_pro_sql CONNECT_TIME KERNEL DEFAULT

ygbx+1215115130_pro_sql PRIVATE_SGA KERNEL DEFAULT

ygbx+1215115130_pro_sql FAILED_LOGIN_ATTEMPTS PASSWORD 3

ygbx+1215115130_pro_sql PASSWORD_LIFE_TIME PASSWORD DEFAULT



PROFILE RESOURCE_NAME RESOURCE LIMIT

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

ygbx+1215115130_pro_sql PASSWORD_REUSE_TIME PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_REUSE_MAX PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_LOCK_TIME PASSWORD 10

ygbx+1215115130_pro_sql PASSWORD_GRACE_TIME PASSWORD DEFAULT

已選擇16行。

③ 利用SQL*Plus或iSQL*Plus,從查看“ygbx+學號_pro_sql”概要文件中鎖定天數的值。

SQL> set linesize 500

SQL> select * from dba_profiles

2 where profile='ygbx+1215115130_pro_sql';



PROFILE RESOURCE_NAME RESOURCE LIMIT

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

ygbx+1215115130_pro_sql COMPOSITE_LIMIT KERNEL DEFAULT

ygbx+1215115130_pro_sql SESSIONS_PER_USER KERNEL DEFAULT

ygbx+1215115130_pro_sql CPU_PER_SESSION KERNEL 1000

ygbx+1215115130_pro_sql CPU_PER_CALL KERNEL DEFAULT

ygbx+1215115130_pro_sql LOGICAL_READS_PER_SESSION KERNEL DEFAULT

ygbx+1215115130_pro_sql LOGICAL_READS_PER_CALL KERNEL 2000

ygbx+1215115130_pro_sql IDLE_TIME KERNEL DEFAULT

ygbx+1215115130_pro_sql CONNECT_TIME KERNEL DEFAULT

ygbx+1215115130_pro_sql PRIVATE_SGA KERNEL DEFAULT

ygbx+1215115130_pro_sql FAILED_LOGIN_ATTEMPTS PASSWORD 3

ygbx+1215115130_pro_sql PASSWORD_LIFE_TIME PASSWORD DEFAULT



PROFILE RESOURCE_NAME RESOURCE LIMIT

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

ygbx+1215115130_pro_sql PASSWORD_REUSE_TIME PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_REUSE_MAX PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT

ygbx+1215115130_pro_sql PASSWORD_LOCK_TIME PASSWORD 10

ygbx+1215115130_pro_sql PASSWORD_GRACE_TIME PASSWORD DEFAULT

已選擇16行。

(3) 修改概要文件。

① 利用企業管理器,修改“ygbx+學號_pro”概要文件,將CPU/會話改為4000,連接時間為60。

SQL> alter profile"ygbx+1215115130_pro" limit

2 cpu_per_session 4000

3 connect_time 60;

配置文件已更改

② 利用SQL*Plus或iSQL*Plus,修改“ygbx+學號_pro_sql”概要文件,將並行會話設為20,讀取數/會話設為DEFAULT。

SQL> alter profile"ygbx+1215115130_pro_sql" limit

2 sessions_per_user 20

3 logical_reads_per_seesion default;

(4) 創建用戶。

① 利用企業管理器,創建“ygbxuser+學號”用戶,密碼為“user+學號”,默認表空間為“ygbx_tbs”。

SQL> create user "ygbxuser_1215115130" identified by "user+1215115130";

用戶已創建。

② 利用SQL*Plus或iSQL*Plus,創建“ygbxuser+學號_sql”用戶,密碼為“user+學號+sql”,該用戶處於鎖狀態。

SQL> create user "ygbxuser_1215115130_sql" identified by "user+1215115130+sql";

用戶已創建。

③ 利用SQL*Plus或iSQL*Plus,將“ygbx+學號_pro”概要文件賦予 “ygbxuser+學號”用戶。

SQL> alter user "ygbxuser_1215115130" profile "ygbx+1215115130_pro"

2 ;

用戶已更改。

④ 利用SQL*Plus或iSQL*Plus,將“ygbx+學號_pro_sql”概要文件賦予 “ygbxuser+學號_sql”用戶。SQL> alter user "ygbxuser_1215115130_sql" profile "ygbx+1215115130_pro_sql"

2 ;

用戶已更改。

(5) 查看用戶。

① 利用企業管理器,查看“ygbxuser+學號”用戶的信息。

② 利用SQL*Plus或iSQL*Plus,查看“ygbxuser+學號_sql”用戶的信息,並查看該用戶驗證的方式。

③ 利用SQL*Plus或iSQL*Plus,從DBA_USERS數據字典中查看“ygbxuser+學號_sql”用戶的默認表空間和臨時表空間的信息。

SQL> select temporary_tablespace,default_tablespace from dba_users

2 where username='ygbxuser_1215115130_sql';

TEMPORARY_TABLESPACE DEFAULT_TABLESPACE

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

TEMP USERS

(6) 修改用戶。

① 利用企業管理器,修改“ygbxuser+學號”用戶,驗證方式為外部.

SQL> alter user "ygbxuser_1215115130" identified externally;

用戶已更改。

② 利用SQL*Plus或iSQL*Plus,修改“ygbxuser+學號_sql”用戶,將該用戶解鎖,並將密碼改為“sql+學號+user”。

SQL> alter user "ygbxuser_1215115130_sql" account unlock;

用戶已更改。

SQL> alter user "ygbxuser_1215115214_sql" identified by "sql+1215115130_user";

用戶已更改。

(7) 權限管理。

① 利用企業管理器,授予“ygbxuser+學號”用戶“CREATE ANY TABLE”、“CREATE ANY INDEX”、“ALTER ANY TABLE”、“ALTER ANY INDEX”、“DROP ANY TABLE”和“DROP ANY INDEX”系統權限。

SQL> grant create any table,create any index,alter any table,alter any index,

2 drop any table,drop any index to "ygbxuser_1215115130"

3 ;

授權成功。

② 利用SQL*Plus或iSQL*Plus,授予“ygbxuser+學號_sql”用戶“SYSOPER”系統權限。

SQL> grant sysoper to "ygbxuser_1215115130_sql";

授權成功。

③ 利用企業管理器,將“ygbxuser+學號”用戶增加到“SYSTEM”方案中對“help”表的查看、修改、刪除等對象權限。

SQL> grant select,update,delete on system.help to "ygbxuser_1215115130";

授權成功。

④ 利用SQL*Plus或iSQL*Plus,收回“ygbxuser+學號_sql”用戶在“SYSTEM”方案中對“help”表的查看、修改、刪除等對象權限。

SQL> revoke select,update,delete on system.help from "ygbxuser_1215115130";

撤銷成功。

⑤ 利用SQL*Plus或iSQL*Plus,收回“ygbxuser+學號_sql”用戶的“SYSOPER”系統權限。

SQL> revoke sysoper from "ygbxuser_1215115130_sql"

2 ;

撤銷成功。

(8) 創建角色。

① 利用企業管理器,創建“ygbxrole+學號”角色,賦予該角色能對表、索引、存儲過程、序列、同義詞進行基本操作的權限。

② 利用SQL*Plus或iSQL*Plus,創建“ygbxrole+學號_sql”角色,該角色具有 “SYSDBA”系統權限,並將該角色賦予“ygbxuser+學號_sql”用戶。

SQL> create role "ygbxrole+1215115130_sql";

角色已創建。

SQL> grant dba to "ygbxrole+1215115130_sql";

授權成功。

SQL> grant "ygbxrole+1215115130_sql" to "ygbxuser_1215115130_sql";

授權成功。

(9) 查看角色。

① 利用企業管理器,查看“ygbxrole+學號”角色所具有的所有權限。

② 利用SQL*Plus或iSQL*Plus,查看“ygbxrole+學號_sql”角色所具有的所有權限。

(10) 修改角色。

① 利用企業管理器,修改“ygbxrole+學號”角色,增加對角色的基本操作,並收回存儲過程和序列的操作權限。

② 利用SQL*Plus或iSQL*Plus,修改“ygbxrole+學號_sql”角色,收回“SYSDBA”系統,而授予“SELECT ANY TABLE”系統權限。

SQL> revoke dba from "ygbxrole+1215115130_sql";

撤銷成功。

SQL> grant select any table to "ygbxuser_1215115130_sql"

2 ;

授權成功。

(11) 刪除角色。

① 利用企業管理器,刪除“ygbxrole+學號”角色。

② 利用SQL*Plus或iSQL*Plus,刪除“ygbxrole+學號_sql”角色。

SQL> drop role "ygbxrole+1215115130_sql";

角色已刪除。

(12) 刪除概要文件。

① 利用企業管理器,刪除“ygbx+學號_pro”概要文件,查看“ygbxuser+學號”用戶的概要文件。

刪除用戶後

② 利用SQL*Plus或iSQL*Plus,刪除“ygbx+學號_pro_sql”概要文件,查看“ygbxuser+學號_sql”用戶的概要文件。

刪除用戶後

(13) 刪除用戶。

① 利用企業管理器,刪除“ygbxuser+學號”用戶。

② 利用SQL*Plus或iSQL*Plus,刪除“ygbxuser+學號_sql”用戶。

SQL> drop user "ygbxuser_1215115130_sql";

用戶已刪除。

總結:

1.只有DBA才應當擁有ALTER DATABASE 系統權限。應用程序開發者一般需要擁有CREATE TABLE、CREATE VIEW和CREATE INDEX等系統權限。普通用戶一般只具有CREATE SESSION系統權限。只有授權時帶有WITH ADMIN OPTION子句時,用戶才可以將獲得的系統權限再授予其他用戶,即系統權限的傳遞性。

2.用戶是DB的使用者和管理者,用戶管理是Oracle DB安全管理的核心和基礎。

3.表空間配額限制用戶在永久表空間中可以使用的存儲空間的大小,默認情況下,新建用戶在任何表空間中都沒有任何配額。

4.SYS:是數據庫中具有最高權限的數據庫管理員,可以啟動、修改和關閉數據庫,擁有數據字典;SYSTEM:是一個輔助的數據庫管理員,不能啟動和關閉數據庫,但可以進行其他一些管理工作,如創建用戶、刪除用戶等。SCOTT:是一個用於測試網絡連接的用戶,其口令為TIGER。PUBLIC:實質上是一個用戶組,數據庫中任何一個用戶都屬於該組成員。要為數據庫中每個用戶都授予某個權限,只需把權限授予PUBLIC就可以了。

5.如果沒有顯式地指明該對象在哪個表空間中存儲,系統會自動將該數據庫對象存儲在當前用戶的默認表空間中。如果沒有為用戶指定默認表空間,則系統將數據庫的默認表空間作為用戶的默認表空間。

6.當用戶進行排序、匯總和執行連接、分組等操作時,系統首先使用內存中的排序區SORT_AREA_SIZE,如果該區域內存不夠,則自動使用用戶的臨時表空間。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved