root>sqlplus / as sysdba 用DBA的權限進入數據庫,需要創建一個賬戶 https://www.jb51.net/article/20367.htm
SQL>create user dbmonitor identified by "ty_sd_s"; 給賬戶授權 SQL>grant connect,resource to dbmonitor;
此賬戶執行的腳本轉換成視圖
復制代碼 代碼如下:
SQL> drop view vstablespace; SQL> create view vstablespace as ( select a.tablespace_name "TABLESPACE", sum(a.bytes) SUM , sum(b.bytes) FREE , sum(b.bytes)/sum(a.bytes)*100 PRECENTFREE from dba_data_files a,dba_free_space b where a.file_id=b.file_id group by a.tablespace_name )
給用戶賦予select試圖的權限 SQL>grant select on vstablespace to dbmonitor ;
如此下來,這個用戶只能查看此數圖,不能改動其他的,就可以保證數據庫的安全了
退出,再用新建的oracle賬戶登錄 root>sqlplus dbmonitor/"ty_sd_s" as sysdba; 進入之后查看用戶所賦予的權限 SQL>select * from user_tab_privs; 從這里看到只用新建視圖的權限 SQL>select * from sys.vstablespace ;