資料庫加密Product_user_profile(PUP) TABLE FOR security 【Blog 搬家】

myhuaer發表於2010-05-05

2006 年 06 月 01日, 星期四

<!--

Product_user_profile(PUP) TABLE FOR security

Product_user_profile(PUP) TABLE FOR security
描述:
SQL*Plus 會使用到 product_user_profile(PUP) TABLE,table 屬於system 使用者.
Table 提供產品級別的安全限制。
作用:
DBA們可以使用 PUP TABLE 對某使用者的在SQL*Plus 環境中的SQL SQL*Plus 命令使其失效。
只是能在SQL*Plus 環境中不能使用,並不是Database 的許可權失效。DBA們甚至能限制訪問Grant,
revokeSet role命令來控制使用者改變自己Database許可權。
何時有效:
當使用者登陸到SQL*Plus 環境,可以讀取pup TABLE 的限制資訊,並能維護這些限制。
這些限制只能在下一次登陸後生效。PUP TABLE 只能在當地的Database 有效。如果你透過Database link
連線遠端的Database,PUP TABLE 不能使用。遠端的Database 不能從database link 抽取使用者名稱和密碼 所以不能判斷User Profile 和許可權。
適用使用者
system,sys 或使用者具有sysdba,sysoper 許可權連線到SQL*Plus,SQL*Plus 不會讀PUP table
因此PUP TABLE 的限制資訊對這些使用者沒有作用。
Role 管理:
使用Create,GRANT,SET SQL命令來建立Role和賦予使用者Role 許可權: 1: 使用Create 命令建立Role,可以有也可以沒有密碼。 2:適用Grant 賦予User 許可權。 3:訪問Role使用Set 命令。
PUB table desc
( 重點欄位一般是必須輸入的,其它欄位推薦為null)
SQL> desc product_user_profile 名稱 是否為空? 型別 --------------------------- ---- ------------------------ PRODUCT NOT NULL VARCHAR2 (30) USERID VARCHAR2(30) ATTRIBUTE VARCHAR2(240) SCOPE VARCHAR2(240) NUMERIC_VALUE NUMBER(15,2) CHAR_VALUE VARCHAR2(240) DATE_VALUE DATE LONG_VALUE LONG
Userid (所有的Userid 必須為大寫,也可以使用萬用字元)
SCOTT CLASS1 CLASS% (all users whose names start with CLASS) % (all users)
可以限制的Commands 如下:
SQL*Plus Commands That Can Be Disabled ACCEPTDEFINEPASSWORDSHUTDOWN APPENDDELPAUSESPOOL ARCHIVE LOGDESCRIBEPRINTSTART(@, @@) ATTRIBUTEDISCONNECTPROMPTSTARTUP BREAKEDITRECOVERSTORE BTITLEEXECUTEREMARKTIMING CHANGEEXIT/QUITREPFOOTERTTITLE CLEARGETREPHEADERUNDEFINE COLUMNHELP (?)RUNVARIABLE COMPUTEHOSTSAVEWHENEVER OSERROR CONNECTINPUTSETWHENEVER SQLERROR COPYLIST (;)SHOW SQL Commands That Can Be Disabled ALTERDELETEMERGESET CONSTRAINTS ANALYZEDISASSOCIATENOAUDITSET ROLE ASSOCIATEDROPPURGESET TRANSACTION AUDITEXPLAINRENAMETRUNCATE CALLFLASHBACKREVOKEUPDATE COMMENTGRANTROLLBACKVALIDATE COMMITINSERTSAVEPOINTna CREATELOCKSELECTna
例子演示:
1: 限制使用者BQY 不能執行 SQL *Plus command 'Host',SQL Command 'Delete'.

SQL> desc product_user_profile;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
PRODUCT NOT NULL VARCHAR2(30)
USERID VARCHAR2(30)
ATTRIBUTE VARCHAR2(240)
SCOPE VARCHAR2(240)
NUMERIC_VALUE NUMBER(15,2)
CHAR_VALUE VARCHAR2(240)
DATE_VALUE DATE
LONG_VALUE LONG

SQL> INSERT INTO product_user_profile
2 (product,userid,attribute,char_value)
3 VALUES
4 ('SQL*Plus','BQY','DELETE','DISABLED')
5 /
已建立 1 行。
SQL> INSERT INTO product_user_profile
2 (product,userid,attribute,char_value)
3 VALUES
4 ('SQL*Plus','BQY','HOST','DISABLED')
5 /
已建立 1 行。
SQL> commit;
提交完成.  
User BQY Login in SQL*Plus
D:oracleora9ibin>sqlplus
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 6月 1 15:51:37 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> host
SP2-0544: 無效的命令: host
SQL> insert into demo(name,age) values('lis',99);
已建立 1 行。
SQL> commit;
提交完成。
SQL> delete from demo;
SP2-0544: 無效的命令: delete
2:Role 管理
User Bqy login in
D:oracleora9ibin>sqlplus bqy/oracle
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 6月 1 16:19:24 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> set role dba
SP2-0544: 無效的命令: set role
SQL>
資料庫的安全是最重要的,怎麼做都不過分。
LisLi

myhuaer 發表於:2006.06.01 17:21 ::分類: ( Oracle Infomation ) ::閱讀:(241次) ::

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/34596/viewspace-661944/,如需轉載,請註明出處,否則將追究法律責任。

相關文章