Oracle:如何創建一個只有查看權限的用戶


因為工作中測試環境和開發環境是分開的,所以開發有時處理bug時需要連接測試數據庫,這樣出現一個問題是有些開發會為了驗證某些問題任意改動數據庫的表和字段,對測試庫造成污染。為了能夠讓開發連接測試環境,同時又不污染測試庫,可以給其提供一個只有查看權限(視情況開放其他權限)的用戶

1.首先登陸sys用戶,創建一個賬號,並賦予連接權限

create user test_cx identified by 11; grant connect to  test_cx;

2.設置權限,使其能夠查看base庫的所有表

登陸base庫,然后執行如下語句,得到針對base庫所有表的授權語句(授權給test_cx用戶)

select 'grant select on base.' || table_name || ' to test_cx;' from user_tables;

3.在base庫中執行查詢得到的授權語句

因為表有上千個,肯定不能一個一個執行,我這里用了一個比較笨的方法,就是把查詢結果導出為sql文件如下

因為每個授權語句都被相同的insert語句包裹,可以通過把多余的部分替換為空格,只剩下grant語句,然后再執行這個sql文件就好了

替換后如下

4.執行上述sql文件即可

5.檢驗

(1)用test_cx賬號登錄,查看其權限

select * from session_privs;

(2)查詢base庫的一張表

 

(3)嘗試修改base庫的表

可以看到test_cx只有select權限

 


免責聲明!

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



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