㈠ Oracle資料庫提供的安全性措施有哪些
Oracle的安全措施主要有三個方面,一是用戶標識和鑒定;二是授權和檢查機制;三是審計技術(是否使用審計技術可由用戶靈活選擇);除此之外,Oracle還允許用戶通過觸發器靈活定義自己的安全性措施。
一、用戶標識和鑒定
在Oracle中,最外層的安全性措施是讓用戶標識自己的名字,然後由系統進行核實。Oracle允許用戶重復標識三次,如果三次未通過,系統自動退出。
二、授權與檢查機制
Oracle的許可權包括系統許可權和資料庫對象的許可權兩類,採用非集中的授權機制,即DBA負責授予與回收系統許可權,每個用戶授予與回收自己創建的資料庫對象的許可權。
Oracle允許重復授權,即可將某一許可權多次授予同一用戶,系統不會出錯。Oracle也允許無效回收,即用戶沒有某種許可權,但回收此許可權的操作仍算成功。
1. 系統許可權
Oracle提供了80多種系統許可權,如創建會話、創建表、創建視圖、創建用戶等。DBA在創建一個用戶時需要將其中的一些許可權授予該用戶。
Oracle支持角色的概念。所謂角色就是一組系統許可權的集合,目的在於簡化許可權管理。Oracle除允許DBA定義角色外,還提供了預定義的角色,如CONNECT,RESOURCE和DBA。
具有CONNECT角色的用戶可以登錄資料庫,執行數據查詢和操縱。即可以執行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作。
RESOURCE角色可以創建表,即執行CREATE TABLE操作。創建表的用戶將擁有對該表的所有許可權。
DBA角色可以執行某些授權命令,創建表,對任何錶的數據進行操縱。它涵蓋了前兩種角色,此外還可以執行一些管理操作,DBA角色擁有最高級別的許可權。
例如DBA建立一用戶U1後,欲將ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系統許可權授予U1,則可以只簡單地將CONNECT角色授予U1即可:
GRANT CONNECT TO U1;
這樣就可以省略十幾條GRANT語句。
2. 資料庫對象的許可權
在Oracle中,可以授權的資料庫對象包括基本表、視圖、序列、同義詞、存儲過程、函數等,其中最重要的是基本表。
對於基本表Oracle支持三個級別的安全性:表級、行級和列級。
(1)表級安全性
表的創建者或者DBA可以把表級許可權授予其他用戶,表級許可權包括:
ALTER:修改表定義
DELETE:刪除表記錄
INDEX:在表上建索引
INSERT:向表中插入數據記錄
SELECT:查找表中記錄
UPDATE:修改表中的數據
ALL:上述所有許可權
表級授權使用GRANT和REVOKE語句。
(2)行級安全性
Oracle行級安全性由視圖實現。用視圖定義表的水平子集,限定用戶在視圖上的操作,就為表的行級提供了保護。視圖上的授權與回收與表級完全相同。
例如,只允許用戶U2查看Student表中信息系學生的數據,則首先創建信息系學生的視圖S_IS,然後將該視圖的SELECT許可權授予U2用戶。
㈡ Oracle資料庫面試題 用戶的許可權都有哪些
系統許可權: 允許用戶執行特定的資料庫動作,如創建表、創建索引、連接實例等(對用戶而言)
對象許可權: 允許用戶操縱一些特定的對象,如讀取視圖,可更新某些列、執行存儲過程等(是針對表或視圖而言的)
1.系統許可權
超過一百多種有效的許可權(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)
資料庫管理員具有高級許可權以完成管理任務,例如:
–創建新用戶
–刪除用戶
–刪除表
–備份表
系統許可權分類:
DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。
RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。
CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以創建實體,不可以創建資料庫結構。
對於普通用戶:授予connect, resource許可權。
對於DBA管理用戶:授予connect,resource, dba許可權。
a.常用的系統許可權:
CREATE SESSION 創建會話
CREATE SEQUENCE 創建序列
CREATE SYNONYM 創建同名對象
CREATE TABLE 在用戶模式中創建表
CREATE ANY TABLE 在任何模式中創建表
DROP TABLE 在用戶模式中刪除表
DROP ANY TABLE 在任何模式中刪除表
CREATE PROCEDURE 創建存儲過程
EXECUTE ANY PROCEDURE 執行任何模式的存儲過程
CREATE USER 創建用戶
DROP USER 刪除用戶
CREATE VIEW 創建視圖
2.對象許可權
不同的對象具有不同的對象許可權
對象的擁有者擁有所有許可權
對象的擁有者可以向外分配許可權
ORACLE一共有種對象許可權
對象許可權 表 視圖 序列 過程
修改(alter) √ √
刪除(delete) √ √
執行(execute) √
索引(index) √
插入(insert) √ √
關聯(references) √ √
選擇(select) √ √ √
更新(update) √ √
㈢ oracle創建用戶後一般給什麼許可權
具體需要哪些許可權需要看用戶的實際需要。我們要在有最高許可權的system用戶創建用戶,再賦予新建用戶許可權,只有給新建用戶許可權,新建用戶才能幹什麼。
一、許可權分為系統許可權及對象許可權。
1、系統許可權:系統規定用戶使用資料庫的許可權。(系統許可權是對用戶而言)。
1)、DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。
2)、RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。
3)、CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以創建實體,不可以創建資料庫結構。
對於普通用戶:授予connect, resource許可權。
對於DBA管理用戶:授予connect,resource, dba許可權。
2、對象許可權:某種許可權用戶對其它用戶的表或視圖的存取許可權。(是針對表或視圖而言的)。
CREATE SESSION,創建會話,才可以打開界面
CREATE TABLE,創建表,可創建空表,但沒有許可權插入數據
CREATE SEQUENCE創建序列
CREATE VIEW,創建視圖
(3)資料庫系統許可權和對象許可權擴展閱讀
一、賦權方式,有兩種賦予用戶許可權的方式,
1、對用戶賦權
一對一的賦予新建用戶許可權,這樣賦予新建用戶許可權比較有活性,如果新建用戶多了,就比較麻煩。
2、對角色賦權
先創建角色,將許可權先賦給角色代理,最後將角色代理的許可權賦新建用戶,這樣比較死板,但是可以同時賦給很多用戶。
參考資料
Oracle官網-Grant