[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:\oracle\ora92) --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]ÎÒÃÇͨ¹ýÈçϵķ½·¨£¬¿ÉÒÔ°²È«Ê¹ÓøÃÓû§£¬È»ºóÔÙÌøת»ØÀ´£¬ÔÚijЩʱºò±È½ÏÓÐÓÃ
ÐèÒª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
[Q]ÈçºÎ¼Ó¹ÌÄãµÄÊý¾Ý¿â
[A]ҪעÒâÒÔÏ·½Ãæ
1. ÐÞ¸Äsys, systemµÄ¿ÚÁî¡£
2. Lock£¬Ð޸ģ¬É¾³ýĬÈÏÓû§: dbsnmp,ctxsysµÈ¡£
3. °ÑREMOTE_OS_AUTHENT¸Ä³ÉFalse£¬·ÀÖ¹Ô¶³Ì»úÆ÷Ö±½ÓµÇ½¡£
4. °ÑO7_DICTIONARY_ACCESSIBILITY¸Ä³ÉFalse¡£
5. °ÑһЩȨÏÞ´ÓPUBLIC RoleÈ¡Ïûµô¡£
6. ¼ì²éÊý¾Ý¿âµÄÊý¾ÝÎļþµÄ°²È«ÐÔ¡£²»ÒªÉèÖóÉ666Ö®ÀàµÄ¡£¼ì²éÆäËûdba Óû§¡£
7. °ÑһЩ²»ÐèÒªµÄ·þÎñ(±ÈÈçftp, nfsµÈ¹Ø±Õµô)
8. ÏÞÖÆÊý¾Ý¿âÖ÷»úÉÏÃæµÄÓû§ÊýÁ¿¡£
9. ¶¨ÆÚ¼ì²éMetalink/OTNÉÏÃæµÄsecurity Alert¡£±ÈÈç:http://otn.oracle.com/deploy/security/alerts.htm
10. °ÑÄãµÄÊý¾Ý¿âÓëÓ¦Ó÷ÅÔÚÒ»¸öµ¥¶ÀµÄ×ÓÍøÖУ¬Òª²»È»ÄãµÄÓû§ÃÜÂëºÜÈÝÒ×±»snifferÈ¥¡£»òÕß²ÉÓÃadvance security£¬¶ÔÓû§µÇ¼¼ÓÃÜ¡£
11. ÏÞÖ¹Ö»ÓÐijЩip²ÅÄÜ·ÃÎÊÄãµÄÊý¾Ý¿â¡£
12. lsnrctl Òª¼ÓÃÜÂ룬Ҫ²»È»±ðÈ˺ÜÈÝÒ×´ÓÍâÃæ¹ØµôÄãµÄlistener¡£
13. Èç¹û¿ÉÄÜ£¬²»ÒªÊ¹ÓÃĬÈÏ1521¶Ë¿Ú
[Q]ÈçºÎ¼ì²éÓû§ÊÇ·ñÓÃÁËĬÈÏÃÜÂë
[A]Èç¹ûʹÓÃĬÈÏÃÜÂ룬ºÜ¿ÉÄܾͶÔÄãµÄÊý¾Ý¿âÔì³ÉÒ»¶¨µÄ°²È«Òþ»¼£¬ÄÇô¿ÉÒÔʹÓÃÈçϵIJéѯ»ñµÃÄÇЩÓû§Ê¹ÓÃĬÈÏÃÜÂë
select username "User(s) with Default Password!"
from dba_users
where password in
('E066D214D5421CCC', -- dbsnmp
'24ABAB8B06281B4C', -- ctxsys
'72979A94BAD2AF80', -- mdsys
'C252E8FA117AF049', -- odm
'A7A32CD03D3CE8D5', -- odm_mtr
'88A2B2C183431F00', -- ordplugins
'7EFA02EC7EA6B86F', -- ordsys
'4A3BA55E08595C81', -- outln
'F894844C34402B67', -- scott
'3F9FBD883D787341', -- wk_proxy
'79DF7A1BD138CF11', -- wk_sys
'7C9BA362F8314299', -- wmsys
'88D8364765FCE6AF', -- xdb
'F9DA8977092B7B81', -- tracesvr
'9300C0977D7DC75E', -- oas_public
'A97282CE3D94E29E', -- websys
'AC9700FD3F1410EB', -- lbacsys
'E7B5D92911C831E1', -- rman
'AC98877DE1297365', -- perfstat
'66F4EF5650C20355', -- exfsys
'84B8CBCA4D477FA3', -- si_informtn_schema
'D4C5016086B2DC6A', -- sys
'D4DF7931AB130E37') -- system
/
[Q]ÈçºÎÐÞ¸ÄĬÈϵÄXDB¼àÌý¶Ë¿Ú
[A]Oracle9iĬÈϵÄXML DB°ÑHTTPµÄĬÈ϶˿ÚÉèΪ8080£¬ÕâÊÇÒ»¸öÌ«³£ÓõĶ˿ÚÁË£¬ºÜ¶à±ðµÄWebServer¶¼»áʹÓÃÕâ¸ö¶Ë¿Ú£¬
Èç¹ûÎÒÃÇ°²×°ÁËËü£¬×îºÃÐÞ¸Äһϣ¬±ÜÃâ³åÍ»£¬Èç¹û²»Ê¹ÓÃÄØ£¬¾Í×îºÃ²»Òª°²×°
ÌṩÈýÖÖÐ޸ĵķ½·¨
1.dbca£¬Ñ¡ÔñÄãµÄÊý¾Ý¿â£¬È»ºóStandard Database Features->Customize->Oracle XML DB option£¬½øÈëÕâ¸ö»ÃæÄãÓ¦¸Ã¾ÍÖªµÀÔõô¸ÄÁË¡£
2.OEM console£¬ÔÚXML Database µÄÅäÖÃÀïÃæÐÞ¸Ä
3.ÓÃoracleÌṩµÄ°ü:
-- °ÑHTTP/WEBDAV¶Ë¿Ú´Ó8080¸Äµ½8081
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
/
-- °ÑFTP¶Ë¿Ú´Ó2100¸Äµ½2111
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))
/
SQL> commit;
SQL> exec dbms_xdb.cfg_refresh;
-- ¼ì²éÐÞ¸ÄÊÇ·ñÒѾ³É¹¦
SQL> select dbms_xdb.cfg_get from dual;
[Q]Ôõô²¶»ñÓû§µÇ¼ÐÅÏ¢£¬ÈçSID£¬IPµØÖ·µÈ
[A]¿ÉÒÔÀûÓõǼ´¥·¢Æ÷£¬Èç
CREATE OR REPLACE TRIGGER tr_login_record
AFTER logon ON DATABASE
DECLARE
miUserSid NUMBER;
mtSession v$session%ROWTYPE;
CURSOR cSession(iiUserSid IN NUMBER) IS
SELECT * FROM v$session
WHERE sid=iiUserSid;
BEGIN
SELECT sid INTO miUserSid FROM v$mystat WHERE rownum<=1;
OPEN cSession(miUserSid);
FETCH cSession INTO mtSession;
--if user exists then insert data
IF cSession%FOUND THEN
INSERT INTO log$information(login_user,login_time,ip_adress,ausid,terminal,
osuser,machine,program,sid,serial#)
VALUES(ora_login_user,SYSDATE,SYS_CONTEXT ('USERENV','IP_ADDRESS'),
userenv('SESSIONID'),
mtSession.Terminal,mtSession.Osuser,
mtSession.Machine,mtSession.Program,
mtSession.Sid,mtSession.Serial#);
ELSE
--if user don't exists then return error
sp_write_log('Session Information Error:'||SQLERRM);
CLOSE cSession;
raise_application_error(-20099,'Login Exception',FALSE);
END IF;
CLOSE cSession;
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Login Trigger Error:'||SQLERRM);
END tr_login_record;
ÔÚÒÔÉÏ´¥·¢Æ÷ÖÐÐèҪעÒâÒÔϼ¸µã
1¡¢¸ÃÓû§ÓÐv_$sessionÓëv_$mystatµÄ¶ÔÏó²éѯȨÏÞ£¬¿ÉÒÔÔÚsys϶ԸÃÓµ»¤ÏÔʽÊÚȨ¡£
2¡¢sp_write_logÔ±¾ÊÇÒ»¸öдÈÕÖ¾µÄ¹ý³Ì£¬¿ÉÒÔÖû»Îª×Ô¼ºµÄÐèÒª£¬ÈçnullÌø¹ý¡£
3¡¢±ØÐëÔÚ´´½¨¸Ã´¥·¢Æ÷֮ǰ´´½¨Ò»¸ölog$informationµÄ±í¼Ç¼µÇ¼ÐÅÏ¢¡£
[Q]Ôõô²¶»ñÕû¸öÊý¾Ý¿âµÄDDLÓï¾ä»òÕßÊÇ˵¶ÔÏó½á¹¹±ä»¯ÓëÐÞ¸Ä
[A]¿ÉÒÔ²ÉÓÃDDL´¥·¢Æ÷£¬Èç
CREATE OR REPLACE TRIGGER tr_trace_ddl
AFTER DDL ON DATABASE
DECLARE
sql_text ora_name_list_t;
state_sql ddl$trace.ddl_sql%TYPE;
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql||sql_text(i);
END LOOP;
INSERT INTO ddl$trace(login_user,ddl_time,ip_address,audsid,
schema_user,schema_object,ddl_sql)
VALUES(ora_login_user,SYSDATE,userenv('SESSIONID'),
sys_context('USERENV','IP_ADDRESS'),
ora_dict_obj_owner,ora_dict_obj_name,state_sql);
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Capture DDL Excption:'||SQLERRM);
END tr_trace_ddl;
ÔÚ´´½¨ÒÔÉÏ´¥·¢Æ÷ʱҪעÒ⼸µã
1¡¢±ØÐë´´½¨Ò»¸öddl$traceµÄ±í£¬ÓÃÀ´¼Ç¼ddlµÄ¼Ç¼
2¡¢sp_write_logÔ±¾ÊÇÒ»¸öдÈÕÖ¾µÄ¹ý³Ì£¬¿ÉÒÔÖû»Îª×Ô¼ºµÄÐèÒª£¬ÈçnullÌø¹ý
[Q]Ôõô²¶»ñ±íÉϵÄDMLÓï¾ä(²»°üÀ¨select)Óï¾ä)
[A]¿ÉÒÔ²ÉÓÃdml´¥·¢Æ÷£¬Èç
CREATE OR REPLACE TRIGGER tr_capt_sql
BEFORE DELETE OR INSERT OR UPDATE
ON manager.test
DECLARE
sql_text ora_name_list_t;
state_sql capt$sql.sql_text%TYPE;
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql || sql_text(i);
END LOOP;
INSERT INTO capt$sql(login_user,capt_time,ip_address,audsid,owner,table_name,sql_text)
VALUES(ora_login_user,sysdate,sys_context('USERENV','IP_ADDRESS'),
userenv('SESSIONID'),'MANAGER','TEST',state_sql);
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Capture DML Exception:'||SQLERRM);
END tr_capt_sql;
ÔÚ´´½¨ÒÔÉÏ´¥·¢Æ÷ʱҪעÒ⼸µã
1¡¢±ØÐë´´½¨Ò»¸öcapt$sqlµÄ±í£¬ÓÃÀ´¼Ç¼ddlµÄ¼Ç¼
2¡¢sp_write_logÔ±¾ÊÇÒ»¸öдÈÕÖ¾µÄ¹ý³Ì£¬¿ÉÒÔÖû»Îª×Ô¼ºµÄÐèÒª£¬ÈçnullÌø¹ý¡£
[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µÄ´®¡£Äã¿ÉÒԸijÉÆäËüÄãÐèÒªµÄÊý×Ö£¬Èç:
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
cd Ä¿±êĿ¼
put file
get file
#²éѯÎļþ
ls
#Í˳ö
bye