第五部分、ORACLE網路與安全 zt

orchidllh發表於2005-03-16
[Q]如何限定特定IP訪問資料庫
[A]可以利用登入觸發器或者是修改sqlnet.ora(9i以上):
增加如下內容:
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]如果一個使用者能執行dbms_repcat_admin包,將獲得極大的系統許可權。
以下情況可能獲得該包的執行許可權:
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.
  
[B]第六部分、OS相關與其它[/B]
[Q]怎麼樣生成日期格式的檔案
[A]在LINUX/UNIX上,使用`date +%y%m%d` (`這個是鍵盤上~所在的那個鍵) 或$(date +%y%m%d),如:
touch exp_table_name_`date +%y%m%d`.dmp
DATE=$(date +%y%m%d)
或者
DATE=$(date +%Y%m%d --date '1 days ago')  #獲取昨天或多天前的日期
Windows上,使用%date:~4,10%,其中4是開始字元,10是提取長度,表示從date生成的日期中,提取從4開始長度是10的串。你可以改成其它你需要的數字,如:
Echo %date:~4,10%
如果想得到更精確的時間,win上面還可以使用time
  
[Q]測試磁碟與陣列效能
[A]用類似如下的方法測試寫能力
time dd if=/dev/zero of=/oradata/biddb/testind/testfile.dbf bs=1024000 count=1000
期間系統IO 使用可以用(unix):
iostat -xnp 2 顯示Busy程度
  
[Q]怎麼配置SSH密匙
[A]可以防止"中間人"的進攻方式
1、ssh-keygen 或ssh-keygen -d(ssh 2.x)生成鑰匙
2、然後拷貝公匙到你想登入的伺服器,改名為authorized_keys,如果是3.0以下版本,需要改為authorized_keys2
3、還可以利用config檔案進一步簡化操作

Host *bj
HostName 機器名或IP
User 使用者名稱
有了這個配置檔案,你就可以利用ssh bj來訪問指定的機器了,也就可以利用scp與sftp來傳送檔案了。
  
[Q]FTP怎麼在指令碼中自動上傳/下載
[A]可以把FTP寫到shell指令碼中,如
ftp -n -i  主機IP  <user username pass
cd 目標目錄
put file
get file
#查詢檔案
ls  
#退出
bye
EOF

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

相關文章