知识大全 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相关参考
OracleFAQ之备份与恢复篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! [Q]如何开启/
OracleFAQ2003.02精华 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Q:如何使用
知识大全 FAQ for the Oracle Intelligent Agent 9.0.1
FAQfortheOracleIntelligentAgent9.0.1 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
这篇文章主要讲解应用程序客户端访问数据库的新特性有些地方理解不好 写得也不是很好请大家帮忙指正谢谢! I安全认证拥有 解决了阻止未经认证的用户通过其他客户端访问数据的问题 在隐藏密码的实现
在专用连接方式中每一个连接到数据库服务器的客户端请求服务器会和客户端之间建立起连接这个连接用于专门处理该客户端的所有请求直到用户主动断开连接或网络出现中断在连接处于空闲时后台进程PMON会每隔一段时间
安装配置Jboss完全篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jboss的配置安装
网络配置文件默认的目录在$ORACLE_HOME/neork/admin目录下 sqlnetora sqlnetora文件决定找数据库服务器别名的方式 参数SQLNETAUTHENTICAT
下面为您介绍的是oracle服务端和客户端之间的网络监听设置如果您在oracle<;服务端和客户端之间的网络监听设置方面遇到过类似的问题不妨一看 oracle服务端和客户端之间的网络监听设
Oracle10gRAC网络设置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinzh
在Oracle网络结构中解决连接问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近看到好多