Oracle 筆記(二) 安全管理

2021-08-03 01:30:07 字數 4052 閱讀 4788

資料庫安全的作用是控制使用者是否能夠對資料庫及其中的物件執行操作。要連線到 oracle 資料庫,就需要建立乙個使用者帳戶,該使用者可以根據需要授予不同的操作許可權。

一、建立使用者create/alter/drop user ***x   

create user prod4

identified by ssss

default tablespace users

temporary tablespace temp;

刪除乙個使用者時,會刪除該使用者所擁有的模式物件。drop user prod4 cascade;

二、使用者授權grant/revoke      

許可權(privilege)即執行特定型別 sql 語句的權利,若無任何許可權,新建立使用者將無法登陸 oracle 資料庫。

1、系統許可權

系統許可權(system privilege)允許使用者執行某些資料庫操作。

grant connect,resource,dba to prod4

[with admin option];

connect,resource,dba 三個預定義的角色封裝了大部分系統許可權;

with admin option 選項使 被授權的使用者 也可以把該許可權賦予其他使用者。(級聯授權,a->b、b->c)

2、模式物件許可權

模式物件許可權(schema object privilege)允許使用者對某一特定物件執行特定操作。要授予物件許可權,使用者必須滿足以下條件之一:

● 使用者擁有指定物件;

● 或者使用者已經擁有 grant option (級聯授權)的能力。

sys:

grant select on sys.test to prod

[with grant option];

prod:

select * from sys.test;

三、角色機制create/alter/drop role ***       

角色(role)類似於作業系統中的使用者組,它封裝了多個許可權。使用者可以通過角色繼承許可權,從而簡化許可權的管理與控制。推薦使用基於角色授權,通過角色控制使用者。

角色的使用注意:

● 角色不屬於任何模式(schema)。因此,建立角色的使用者可以被移除而不會對角色有所影響。

● 角色可以被授予其他角色。但是角色不能授予其自身,角色間也不能形成閉環。例如,當角色 b 已經被授予角色 a 時,角色 a 就不能再授予角色 b。

-- 建立角色 myrole 並賦予許可權,然後將該角色賦予使用者 prod(繼承該角色) --

create role myrole;

grant select on sys.test to myrole;

grant select on sys.test4 to myrole;

grant myrole to prod;

四、配置模版及資源限制create/alter/drop profile ***

每個使用者都對應一套配置模版(profile),其中描述了使用者使用多種系統資源時的限制,具體包括:

● 使用者能夠建立的併發會話(concurrent session)數

● 使用者會話及 sql 語句對 oracle 進行一次呼叫時可用的 cpu 處理時間

● 使用者會話及 sql 語句對 oracle 進行一次呼叫時可用的邏輯 i/o(logical i/o)量

● 使用者會話的最大空閒時間(idle time)

● 使用者會話的最大連線時間(connect time)

● 密碼限制規則:

多次嘗試登入均失敗時對帳戶加鎖

密碼過期時間(expiration period)及寬限期(grace period)

密碼重用(reuse)及複雜度(complexity)限制規則

附錄

1、模式(schema):模式是指使用者與其擁有物件的邏輯集合。

2、***

oracle 檢視使用者許可權

oracle中資料字典檢視分為3大類,用字首區別,分別為:user,all 和 dba,許多資料字典檢視包含相似的資訊。

● user_*:有關使用者所擁有的物件資訊,即使用者自己建立的物件資訊

● all_*:有關使用者可以訪問的物件的資訊,即使用者自己建立的物件的資訊加上其他使用者建立的物件但該使用者有權訪問的資訊

● dba_*:有關整個資料庫中物件的資訊

(這裡的*可以為tables, indexes, objects, users等)

1.檢視所有使用者:

select * from dba_user;

select * from all_users;

select * from user_users;

2.檢視使用者系統許可權:

select * from dba_sys_privs;

select * from all_sys_privs;

select * from user_sys_privs;

3.檢視使用者物件許可權:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

4.檢視所有角色:

select * from dba_roles;

5.檢視使用者所擁有的角色:

select * from dba_role_privs;

select * from user_role_privs;

6.檢視當前使用者的預設表空間

select username,default_tablespace from user_users;

7.檢視某個角色的具體許可權,如grant connect,resource,create session,create view to test;

檢視resource具有那些許可權,用select * from dba_sys_privs where grantee='resource';

3、***

物件許可權

模式物件/許可權

alter

delete

execute

index

insert

read

reference

select

update

directory

√function

√procedure

√package

√db object

√libary

√operation

√sequence

√table√√

√√√√

√type

√view√√

√√物件由不止乙個許可權,特殊許可權all可以被授予或撤銷。如table的all許可權就包括:

select,insert,update和delete,還有index,alter,和reference。

4、***

oracle 9i預定義的角色

角色名稱

說明connect

dba

資料庫管理員角色,具有所有使用admin選項建立的系統許可權,可以將系統許可權授予其他使用者或角色

delete_catalog_role

刪除目錄角色,可以刪除或重建資料字典

execute_catalog_role

執行目錄角色,能夠執行所有系統包

exp_full_database

能夠使用匯出程式執行資料庫的完全和增量匯出

imp_full_database

能夠使用匯入程式執行資料庫的完全匯入

resource

可以建立簇、表、序列以及pl/sql程式設計用方案物件,包括過程、程式包、觸發器等

select_catalog_role

查詢資料字典表或檢視

Oracle安全管理

oracle 10g 資料庫系統學習筆記 安全管理 2008 09 26 20 20建立test使用者 利用企業管理工具建立test使用者的sql語法 create user test profile default identified by account unlock grant connec...

ORACLE安全管理

cmd 進入dos頁面 鍵入命令 sqlplus as sysdba進入oracle 超級管理 1 用dba角色的使用者登陸,進行解鎖,先設定具體時間格式,以便檢視具體時間 sql alter session set nls date format yyyy mm dd hh24 mi ss ses...

Oracle安全管理

oracle的資料安全控制機制包括以下6個方面 1 使用者管理 2 許可權管理使用者許可權分類 將許可權授予使用者有兩種辦法 範例 為public組使用者收取create session許可權 grant create session to public 為使用者user2授予create sess...