SQL*Plus安全(二)
那麼,如果我們使用與sqlplus最接近的產品sqlplusw呢?這種配置專案還有作用嗎?
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 2月 9 20:36:01 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn hr/hr@orcl;
已連線。
SQL> select count(*) from jobs;
COUNT(*)
----------
19
SQL> delete jobs;
SP2-0544: 在產品使用者概要檔案中禁用命令 "delete"
看來,SQLPLUSW也是同樣有效。原因可能就在於登入sqlplusw的時候,同樣報出“SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 2月 9 20:36:01 2011”。可以看出從Oracle角度看,兩者是一樣的。那麼,其他產品,如pl/sql developer如何呢?
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as hr
SQL> select count(*) from job_history;
COUNT(*)
----------
10
SQL> delete job_history;
10 rows deleted
在plsql developer下,刪除就成功了。相當於這個規則沒有應用到其上。這恐怕也就是Oracle所推薦的product-level security吧。
如果要取消這種限制,只需要將規則資料行刪除就可以了。
SQL> conn ; //預先登入
已連線。
SQL> host calc
SP2-0544: 在產品使用者概要檔案中禁用命令 "host" //配置起效
SQL>
此時接觸安全配置。
SQL> delete product_user_profile where userid='SCOTT';
1 row deleted
SQL> commit;
Commit complete
SQL> select product,userid,attribute,char_value from product_user_profile;
PRODUCT USERID ATTRIBUTE CHAR_VALUE
---------- ---------- ---------- ----------
SQL*PLUS % INSERT DISABLED
SQL*PLUS % UPDATE DISABLED
SQL*PLUS % DELETE DISABLED
此時,我們在scott上實驗。但注意:我們沒有重新登入!
SQL> host calc
SP2-0544: 在產品使用者概要檔案中禁用命令 "host" //在沒有重新登入的情況下,規則變化是不能反映的!!
SQL>
SQL> conn scott/tiger@orcl;
已連線。
SQL> host calc //重新登入後,生效!
限制型別
我們談談pup可以限制的型別。上面的例子中,我們使用了兩種型別的限制:SQL語句和SQL*PLUS命令。對PUP,此外還支援pl/sql程式碼。
SQL語句就是我們使用的DML、DDL和事務語句。基本就是SQL語言系中的關鍵字和關鍵操作。
SQL*PLUS命令就是在SQL*PLUS中常用的一些命令語句。如show、col和set等等。
pl/sql語句主要是begin和declare兩個關鍵詞命令。
具體限制可以參閱相關官方文件。
PUP細節
下面就幾個零散的知識點進行說明。
超級使用者設定
這裡的超級使用者是sys和system使用者,以及具有sysdba或者sysoper角色的使用者,是不受到PUP安全的限制的。
SQL> select product,userid,attribute,char_value from product_user_profile;
PRODUCT USERID ATTRIBUTE CHAR_VALUE
---------- ---------- ---------- ----------
SQL*PLUS % INSERT DISABLED
SQL*PLUS % UPDATE DISABLED
SQL*PLUS % DELETE DISABLED
SQL> conn sys/sys@orcl as sysdba;
已連線。
SQL> select count(*) from scott.emp;
COUNT(*)
----------
14
SQL> delete scott.emp; //在有限制的情況下,使用者sys依然可以實現刪除資料!
已刪除14行。
local database侷限
PUP的另一個限制就是隻侷限在本地資料庫。比如說,我在例項A上設定規則,說scott使用者不能對資料表進行insert操作。那麼這個資料表只是例項A的資料表。如果當前存在DBLink,使scott可以訪問到其他資料庫(Remote Databaes)的資料表,那麼這個insert禁用的限制是不存在的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-686924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL*Plus安全(一)SQL
- SQL*PLUS安全(三)SQL
- SQL*PLUS安全(四)SQL
- 使用sql*plus時的一個安全小問題SQL
- SQL*Plus菜鳥筆記之第二篇SQL筆記
- 使用SQL*PlusSQL
- 【sqlplus】SQL*Plus命令使用大全SQL
- SQL*Plus Substitution VariablesSQL
- set autotrace in SQL*PlusSQL
- sql*plus入門SQL
- 使用sql*plus編輯sql文字SQL
- ORACLE SQL and SQL*PLUS (strong recommend)OracleSQL
- sql之27 using sql*plusSQL
- sql之26 using sql*plusSQL
- SQL入門之6 sql*plusSQL
- 【SQL*Plus】使用SQL*Plus的Preliminary方式連線資料庫SQL資料庫
- 【SQL*Plus】在SQL*Plus中謹慎使用Ctrl+S快捷鍵SQL
- 【SQL*Plus】使用SQL*Plus的-S選項精簡輸出資訊SQL
- SQL Server 2000的安全策略(二)SQLServer
- SQL * Plus Copy 命令SQL
- sql_plus操作命令SQL
- 常用的sql*plus命令:SQL
- 在sql*plus裡編輯SQL命令SQL
- 【SQL*Plus】處理 SQL*Plus的標頭無法顯示問題SQL
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項SQLOracle
- 1.3.2. 關於SQL*PlusSQL
- plustrce.sql的作用SQL
- sql plus命令使用總結SQL
- SQL*PLUS 環境變數SQL變數
- SQL/PLUS 常用命令SQL
- sql*plus 常用命令SQL
- SQL/PLUS命令的使用大全SQL
- SQL*PLUS命令的使用大全SQL
- SQL*PLUS -L選項巧用SQL
- SQL*PLUS命令, set命令大全SQL
- 設定sql plus 的autotraceSQL
- 定製SQL*Plus環境SQL
- 詳解sql*plus spool命令SQL