Oracle資料庫網路與安全之FAQ彙集(轉)

BSDLite發表於2007-08-17
Oracle資料庫網路與安全之FAQ彙集(轉)[@more@][Q]如何限定特定IP訪問資料庫

[A]可以利用登入觸發器、cmgw或者是在$OREACLE_HOME/network/admin下新增一個protocol.ora檔案(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:

增加如下內容:


tcp.validnode_checking=yes
#允許訪問的ip
tcp.inited_nodes=(ip1,ip2,……)
#不允許訪問的ip
tcp.excluded_nodes=(ip1,ip2,……)


[Q]如何穿過防火牆連線資料庫

[A]這個問題只會在WIN平臺出現,UNIX平臺會自動解決。

解決方法:

在伺服器端的SQLNET.ORA應類似


SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
登錄檔的HOME0加[HKEY_LOCAL_MACHINE]
USE_SHARED_SOCKET=TRUE

[Q]如何利用hostname方式連線資料庫

host name方式只支援tcp/ip協議的小區域網

修改listener.ora中的如下資訊


(SID_DESC =
(GLOBAL_DBNAME = ur_hostname) --你的機器名
(ORACLE_HOME = E:oracleora92) --oracle home
(SID_NAME = orcl) --sid name
)


然後在客戶端

的sqlnet.ora中,確保有


NAMES.DIRECTORY_PATH= (HOSTNAME)


你就可以利用資料庫伺服器的名稱訪問資料庫了


[Q]dbms_repcat_admin能帶來什麼安全隱患

[A]以下情況可能獲得該包的執行許可權:

1、在sys下


grant execute on dbms_repcat_admin to public[|user_name]


2、使用者擁有execute any procedure特權(僅限於9i以下,9i必須顯示授權)

如果使用者透過執行如下語句:

exec sys.dbms_repcat_admin.grant_admin_any_schema('user_name');


該使用者將獲得極大的系統特權

可以從user_sys_privs中獲得詳細資訊


[Q]在不知道使用者密碼的時候,怎麼樣跳轉到另外一個使用者執行操作後並不影響該使用者?

[A]我們透過如下的方法,可以安全使用該使用者,然後再跳轉回來,在某些時候比較有用

需要Alter user許可權或DBA許可權:


SQL> select password from dba_users where username='SCOTT';
PASSWORD
-----------------------------
F894844C34402B67
SQL> alter user scott identified by lion;
User altered.
SQL> connect scott/lion
Connected.
REM Do whatever you like...
SQL> connect system/manager
Connected.
SQL> alter user scott identified by values 'F894844C34402B67';
User altered.
SQL> connect scott/tiger
Connected.

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

相關文章