安全第一手:禁止sqlplus 直接登录-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3502482
  • 博文数量: 718
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7790
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(718)

文章存档

2024年(4)

2023年(74)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2022-03-23 11:27:56

在linux/unix上直接sqlplus / as sysdba 可以登录数据库,但是这样不太安全,比如不太熟悉oracle维护的开发人员随便操作数据库。

专业的做法是在$oracle_home/network/admin/sqlnet.ora 
中加入 sqlnet.authentication_services=(none) 即可生效

没有设置前

可以直接登录(绿色箭头所指),以sys用户的权限执行任何操作(比如:关库、删除数据)。

修改sqlnet.ora 后 (不需要重启侦听,立即生效)
就不允许直接登录了(蓝色箭头)

有的环境中sqlnet.ora 在$tns_admin目录下

一般人会被拦住,懂点的可能会自己修改sqlnet.ora 去掉这个限制,因此可以进一步防护:修改属主和权限

这样oracle用户就不能直接修改sqlnet.ora了。
禁止sys
直接登录,还影响备份rman target / 或adg切换平台、监控、脱敏等系统,要注意测试。


可是,你有你的张良计,我有我的过墙梯,要想很容易的实现登录数据库,即使无法改写sqlnet.ora,也可轻松绕开,即利用 $tns_admin,使其临时指向一个新目录,手工生成一个简单的sqlnet.ora即可(这很像黑客伪造证书)。


要想禁止普通用户直接登录,得靠触发器

  1. create or replace trigger logon_deny
  2.   after logon on database
  3. declare
  4.   my_forced_exception exception;
  5.   pragma exception_init(my_forced_exception, -20101);
  6. begin
  7.   --禁止sys用户从192.168.204.10/30上用sqlplus登录
  8.   if (sys_context('userenv', 'session_user') in ('scott')) -- add your username here
  9.    then
  10.     if (upper(sys_context('userenv', 'module')) like '%sqlplus%' and --sql*plus
  11.        sys_context('userenv','ip_address') in ('192.168.204.30','192.168.204.10'))
  12.      then
  13.       raise my_forced_exception;
  14.     end if;
  15.   end if;
  16. exception
  17.   when my_forced_exception then
  18.     raise_application_error(-20101,
  19.                             'user ' ||
  20.                             sys_context('userenv', 'session_user') || ' ' ||
  21.                             'module ' ||
  22.                             upper(sys_context('userenv', 'module')) || ' ' || '
  23.                               logon action is not allowed.
  24.                               please contact dba');
  25.   when others then
  26.     null;
  27. end;
  28. /

但是 sys 好像不能被拦截,它总是很特殊(密码有效期就不起作用)。

一个思路是:
把orapwd执行权限去掉,属主改为root
删除口令文件!
给rman创建专用备份用户,并授权
给adg配置参数redo_transport_user,指定专用用户
给监控配置专用用户,授予连接和查询数据字典权限
给脱敏配置专用用户
给xx配置专用用户...

一切交给了root 或者了解一下 oracle database vault


goodluck!
阅读(1484) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图