Oracle常見授權與回收權限——grant和revoke


 

 最近公司在做<高風險檢視>回收一些有風險的權限。故順便 總結一下權限相關的兩個關鍵字grant on to ,revoke on from 相關用法,並給出一個實例
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.GRANT 賦於權限
常用的系統權限集合有以下三個:
CONNECT(基本的連接), RESOURCE(程序開發), DBA(數據庫管理)

常用的數據對象權限有以下五個:
ALL ON 數據對象名, SELECT ON 數據對象名, UPDATE ON 數據對象名,
DELETE ON 數據對象名, INSERT ON 數據對象名, ALTER ON 數據對象名

GRANT CONNECT, RESOURCE TO 用戶名;
GRANT SELECT ON 表名 TO 用戶名;
GRANT SELECT, INSERT, DELETE ON表名 TO 用戶名1, 用戶名2;

2.REVOKE 回收權限
REVOKE CONNECT, RESOURCE FROM 用戶名;
REVOKE SELECT ON 表名 FROM 用戶名;
REVOKE SELECT, INSERT, DELETE ON 表名 FROM 用戶名1, 用戶名2;
 
3.查看用戶權限
 

可參照另一篇文章:oracle用戶具有的權限和角色
select * from dba_sys_privs;
select * from dba_tab_privs;
SELECT DISTINCT(grantee) FROM dba_tab_privs;
SELECT DISTINCT(owner) FROM dba_tab_privs;
--TLOANCDE,TLOANDATA
SELECT DISTINCT(privilege) FROM dba_tab_privs;
/*
FLASHBACK
EXECUTE
ALTER
ON COMMIT REFRESH
DEQUEUE
DELETE
UPDATE
DEBUG
QUERY REWRITE
SELECT
USE
READ
INSERT
WRITE
INDEX
REFERENCES
MERGE VIEW
*/

SELECT * FROM dba_tab_privs
WHERE owner = 'TLOANCDE' OR owner = 'TLOANDATA'
ORDER BY grantee,table_name,privilege;

SELECT *
FROM dba_tab_privs
WHERE owner = 'TLOANDATA' AND TABLE_NAME = 'DAMS_D10_SEQUENCE'

4.實際案例

-------------------------------------------------------------
--(1).查看當前的 user下 某表的 權限--關注要刪除的用戶A的X權限
SELECT *
FROM dba_tab_privs
WHERE owner = 'TLOANDATA' AND TABLE_NAME = 'DAMS_D20_SEQUENCE'
--(2).執行 回收權限
REVOKE alter on TLOANDATA.DAMS_D20_SEQUENCE from DEVSUP02;
--(3).驗證結果:關注要刪除的A用戶的X權限
SELECT *
FROM dba_tab_privs
WHERE owner = 'TLOANDATA' AND TABLE_NAME = 'DAMS_D20_SEQUENCE'
--(4).恢復測試環境數據
GRANT alter on TLOANDATA.DAMS_D20_SEQUENCE TO DEVSUP02;
--5.驗證恢復無誤,查詢結果 同1
SELECT *
FROM dba_tab_privs
WHERE owner = 'TLOANDATA' AND TABLE_NAME = 'DAMS_D20_SEQUENCE'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM