知识大全 Oracle FAQ 之网络与安全篇

Posted 数据库

篇首语:惜时专心苦读是做学问的一个好方法。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle FAQ 之网络与安全篇相关的知识,希望对你有一定的参考价值。

Oracle FAQ 之网络与安全篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ORACLE网络与安全  [Q]如何限定特定IP访问数据库  [A]可以利用登录触发器 cmgw或者是在$OREACLE_HOME/neork/admin下新增一个protocol ora文件(有些os可能是 protocol ora) i可以直接修改sqlnet ora   增加如下内容   tcp validnode_checking=yes  #允许访问的ip  tcp inited_nodes=(ip ip ……)  #不允许访问的ip  tcp excluded_nodes=(ip ip ……)    [Q]如何穿过防火墙连接数据库  [A]这个问题只会在WIN平台出现 UNIX平台会自动解决   解决方法   在服务器端的SQLNET ORA应类似  SQLNET AUTHENTICATION_SERVICES= (NTS)   NAMES DIRECTORY_PATH= (TNSNAMES ONAMES HOSTNAME)   TRACE_LEVEL_CLIENT =   注册表的HOME 加[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\\ora ) oracle home  (SID_NAME = orcl) sid name  )  然后在客户端  的sqlnet ora中 确保有  NAMES DIRECTORY_PATH= (HOSTNAME)  你就可以利用数据库服务器的名称访问数据库了    [Q]dbms_repcat_admin能带来什么安全隐患  [A]如果一个用户能执行dbms_repcat_admin包 将获得极大的系统权限   以下情况可能获得该包的执行权限    在sys下grant execute on dbms_repcat_admin to public[|user_name]   用户拥有execute any procedure特权(仅限于 i以下 i必须显示授权)  如果用户通过执行如下语句   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     F C B   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 F C B ;  User altered   SQL> connect scott/tiger  Connected     [Q]如何加固你的数据库  [A]要注意以下方面   修改sys system的口令    Lock 修改 删除默认用户 dbsnmp ctxsys等    把REMOTE_OS_AUTHENT改成False 防止远程机器直接登陆    把O _DICTIONARY_ACCESSIBILITY改成False    把一些权限从PUBLIC Role取消掉    检查数据库的数据文件的安全性 不要设置成 之类的 检查其他dba 用户    把一些不需要的服务(比如ftp nfs等关闭掉)    限制数据库主机上面的用户数量    定期检查Metalink/OTN上面的security Alert 比如    把你的数据库与应用放在一个单独的子网中 要不然你的用户密码很容易被sniffer去 或者采用advance security 对用户登录加密    限止只有某些ip才能访问你的数据库    lsnrctl 要加密码 要不然别人很容易从外面关掉你的listener    如果可能 不要使用默认 端口    [Q]如何检查用户是否用了默认密码   [A]如果使用默认密码 很可能就对你的数据库造成一定的安全隐患 那么可以使用如下的查询获得那些用户使用默认密码  select username User(s) with Default Password!   from dba_users   where password in   ( E D D CCC dbsnmp    ABAB B B C ctxsys    A BAD AF mdsys    C E FA AF odm    A A CD D CE D odm_mtr    A B C F ordplugins    EFA EC EA B F ordsys    A BA E C outln    F C B scott    F FBD D wk_proxy    DF A BD CF wk_sys    C BA F wmsys    D FCE AF xdb    F DA B B tracesvr    C D DC E oas_public    A CE D E E websys    AC FD F EB lbacsys    E B D C E rman    AC DE perfstat    F EF C exfsys    B CBCA D FA si_informtn_schema    D C B DC A sys    D DF AB E ) system   /    [Q]如何修改默认的XDB监听端口   [A] Oracle i默认的XML DB把HTTP的默认端口设为 这是一个太常用的端口了 很多别的WebServer都会使用这个端口   如果我们安装了它 最好修改一下 避免冲突 如果不使用呢 就最好不要安装  提供三种修改的方法   dbca 选择你的数据库 然后Standard Database Features >Customize >Oracle XML DB option 进入这个画面你应该就知道怎么改了    OEM console 在XML Database 的配置里面修改    用oracle提供的包    把HTTP/WEBDAV端口从 改到   SQL> call dbms_xdb cfg_update(updateXML(dbms_xdb cfg_get()    /xdbconfig/sysconfig/protocolconfig/config/ port/text() ))   /    把FTP端口从 改到   SQL> call dbms_xdb cfg_update(updateXML(dbms_xdb cfg_get()    /xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp port/text() ))   /   SQL> mit;   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<= ;  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( Login Exception FALSE);  END IF;  CLOSE cSession;  EXCEPTION  WHEN OTHERS THEN  sp_write_log( Login Trigger Error: ||SQLERRM);  END tr_login_record;  在以上触发器中需要注意以下几点   该用户有v_$session与v_$mystat的对象查询权限 可以在sys下对该拥护显式授权    sp_write_log原本是一个写日志的过程 可以置换为自己的需要 如null跳过    必须在创建该触发器之前创建一个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 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;  在创建以上触发器时要注意几点   必须创建一个ddl$trace的表 用来记录ddl的记录   sp_write_log原本是一个写日志的过程 可以置换为自己的需要 如null跳过 cha138/Article/program/Oracle/201311/17066

相关参考

知识大全 Oracle FAQ 之备份与恢复篇

OracleFAQ之备份与恢复篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  [Q]如何开启/

知识大全 Oracle FAQ 2003.02精华

OracleFAQ2003.02精华  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Q:如何使用

知识大全 FAQ for the Oracle Intelligent Agent 9.0.1

FAQfortheOracleIntelligentAgent9.0.1  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 9i新特性之二安全篇

  这篇文章主要讲解应用程序客户端访问数据库的新特性有些地方理解不好  写得也不是很好请大家帮忙指正谢谢!  I安全认证拥有  解决了阻止未经认证的用户通过其他客户端访问数据的问题  在隐藏密码的实现

知识大全 oracle的共享连接和专用连接方式之初探

在专用连接方式中每一个连接到数据库服务器的客户端请求服务器会和客户端之间建立起连接这个连接用于专门处理该客户端的所有请求直到用户主动断开连接或网络出现中断在连接处于空闲时后台进程PMON会每隔一段时间

知识大全 安装配置Jboss完全篇

安装配置Jboss完全篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jboss的配置安装  

知识大全 oracle网络配置相关概念

  网络配置文件默认的目录在$ORACLE_HOME/neork/admin目录下  sqlnetora  sqlnetora文件决定找数据库服务器别名的方式  参数SQLNETAUTHENTICAT

知识大全 oracle服务端和客户端之间的网络监听设置

  下面为您介绍的是oracle服务端和客户端之间的网络监听设置如果您在oracle<;服务端和客户端之间的网络监听设置方面遇到过类似的问题不妨一看  oracle服务端和客户端之间的网络监听设

知识大全 Oracle 10g RAC网络设置

Oracle10gRAC网络设置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinzh

知识大全 在Oracle网络结构中解决连接问题

在Oracle网络结构中解决连接问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近看到好多