千家信息网

Oracle数据库网络与安全FAQ的操作有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Oracle数据库网络与安全FAQ的操作有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。[Q]如何限定特定IP访问数
千家信息网最后更新 2026年11月01日Oracle数据库网络与安全FAQ的操作有哪些

Oracle数据库网络与安全FAQ的操作有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

[Q]如何限定特定IP访问数据库
  [A]可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:
  增加如下内容:
  tcp.validnode_checking=yes
  #允许访问的i
  tcp.inited_nodes=(ip1,ip2,……)
  #不允许访问的i
  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方式连接数据库
  [A]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
  [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. 限止只有某些ip才能访问你的数据库。
  12. lsnrctl 要加密码,要不然别人很容易从外面关掉你的listener。
  13. 如果可能,不要使用默认1521端口
  [Q]如何检查用户是否用了默认密码
  [A]如果使用默认密码,很可能就对你的数据库造成一定的安全隐患,那么可以使用如下的查询获得那些用户使用默认密码
  select username "User(s) with Default Password!"
  from dba_users
  where password in
  ('E066D214D5421CCC', -- dbsnm
  '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跳过

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

用户 数据 数据库 端口 密码 触发器 安全 权限 检查 登录 信息 方法 服务 内容 原本 对象 平台 文件 方式 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 互联网是第几次科技革命的成果 中资互联网科技 互联网 科技公司 互联网络科技有限公司 致聘互联网科技 佩信高科技互联网 互联网大会黑科技排名 注册互联网科技公司经营范围大全 成都互联网科技公司工作好不好 消费医药和互联网科技 区块链结合互联网科技 合肥互联网科技公司公章图片 国产互联网科技公司 互联网科技新闻 张家口科技产业互联网平台 科技互联网经济论坛 唐山双旺合互联网科技产业园 恒生科技指数 中概互联网 互联网领先科技成果宣传视频 科技股互联网 兼蜜互联网科技 互联网科技公司介绍 汉立互联网科技有限公司联系电话 须眉科技是互联网公司吗 互联网科技大赛获奖感言 上海同邻互联网科技有限公司规模 恒生科技互联网指数十大成分股 如何强化互联网金融科技 武汉亿视互联网科技有限公司
0