最早想要实现禁止某些特定用户使用SQLPLUS或PL/SQL Developer等工具登陆是在2010年的3月,当时发现用户的一套数据库中有大量的用户使用老版本的PL/SQL Developer登陆,具体的版本号记不清楚了,大约是PL/SQL Developer 5的版本,是否正版授权不得而知, 反正就是一个办公室里有大量的阿姨、大叔都靠这个图形化工具访问数据库,做一些必要的数据操作,主要是一些SQL查询语句,有时候他们还会用工具栏查一些对象(search object),正是因为他们使用了老版本的PL/SQL Developer,造成在使用一些widget的时候会引起Oracle出现一些非致命的ORA-00600错误,虽然这些600错误不会导致严重的问题,但是只要是出现在告警日志Alert.log中的600还是需要我们去分析。 当时我的想法是直接从Oracle的角度禁止普通用户以PL/SQL Developer工具登陆,虽然当时没有真的这样做。 题外话,要真的这么做了,估计那一办公室的阿姨、叔叔都要找我的麻烦,他们可不会用SQLPLUS来登数据库;让他们升级PL/SQL Developer到高版本的想法也基本可以打住,让阿姨、叔叔们升级可要比登天还难。 Google了一番,没有找到太多有用的信息。 闲来无事,我在著名的Oracle-l Freelist邮件列表中发了一封邮件,集思广益:

Hello every,Anyone can advise how to ban plsql developer  connect to oracle?
The plsql developer search widget may cause  some ora-600 warning in alert
log . So I want to ban any connection using plsql developer.

Oracle-l Free List不愧是卧虎藏龙,第二天就收到了十分有用的信息,感谢这位 Coskan Gundogar的网友。   Damir-Vadas 在他的博客上提供了一种有效的方式,通过建立LOGON DATABASE的Trigger触发器,实现了仅允许拥有特定角色(Role)的用户通过sqlplus登陆实例。   这和我们的需求大致相仿,值得借鉴。我们的实际需求是: 针对某些已知的数据库用户账号,限制其使用SQLPLUS、PL/SQL Developer、Toad等工具登陆实例; 因为这里所要限制的用户账号和工具模块名(module)都是已知的,所以不必要如Damir-Vadas那样做成白名的形式,而只需要定义blacklist即可。实际这样做的一大目的是尽可能限制人为的登录; 我们知道当应用程序登录数据库时,根据应用程序的构成不同,可能使用JDBC Thin Client、Pro*C、ODBC等多种模块名(Module),我们不想限制应用程序的正常登录, 而仅仅想禁止人为地使用这些应用程序所使用的账号来登录实例(应用程序的账号信息可能被写在应用层中,或者为开发人员所知晓),一般我们只要限制SQLPLUS、PL/SQL Developer、Toad这几种主流的客户端程序,就可以限制人为地登录数据库了;当然这其实是防君子不防小人,实际如果hacker真的掌握了应用程序的账号密码的话,完全可以通过自己编写程序来访问数据库。   建立示例的,禁止以SQLPLUS和PL/SQL DEVELOPER登陆的用户账号TRY_LOGON_BY_TOOLS:

SQL> select * from v$version;BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - ProductionSQL> select * from global_name;GLOBAL_NAME
--------------------------------------------------------------------------------
www.oracledatabase12g.com  & www.askmaclean.comSQL> create user TRY_LOGON_BY_TOOLS IDENTIFIED BY abc;User created.SQL> grant connect,resource to TRY_LOGON_BY_TOOLS;Grant succeeded.

创建以下LOGON DATABASE Trigger即可限制TRY_LOGON_BY_TOOLS用户以SQLPLUS、Toad、PL/SQL DEVELOPER 三种软件登陆数据库,

本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278173

如何禁止特定用户使用sqlplus或PL/SQL Developer等工具登陆?相关推荐

  1. PL/SQL Developer 开发工具技巧总结

    PL/SQL Developer 开发工具技巧总结 模板功能 模板设置 默认设置 自定义设置 添加模板 模板语法 指定窗口类型 用户变量 系统变量 模板使用 查询语句 执行脚本 程序模板 自动替换功能 ...

  2. PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验

    PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验 一.问题现象及解决方法 现象: 1.PL/SQL 无法登录64位数据库 2.在PL/SQL ...

  3. 本机不安装Oracle客户端,使用PL/SQL Developer和 Instant Client 工具包连接oracle 11g远程数据库

    1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantc ...

  4. 通过PL/SQL developer工具访问远程的Oracle数据库_访问数据库_连接数据库_登录数据库

    文章目录 工具简介 电脑没有安装 Oracle 数据库 电脑安装了 Oracle 数据库 工具简介 PL/SQL Developer 是 Oracle 数据库开发工具,PL/SQL Developer ...

  5. Pl/SQL Developer 配置

    为什么80%的码农都做不了架构师?>>>    1.下载地址:http://www.oracle.com/technology/global/cn/software/tech/oci ...

  6. 使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库

    1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantc ...

  7. Oracle Study之--PL/SQL Developer软件错误

    Oracle Study之--PL/SQL Developer软件错误 博文在51cto和CSDN同时开通 系统环境: 操作系统: Windows  XP(64) 软件:          PL/SQ ...

  8. 64位WINDOWS 使用PL SQL DEVELOPER 连接ORACLE 出错问题解决

    问题: 开始配置好后,执行以下代码: 在PL SQL DEVELOPER 查询 ID          A            DUTY ------------------------------ ...

  9. PL/SQL教程:PL/SQL Developer使用技巧

    1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:tools- ...

最新文章

  1. php语+言教程,写给thinkphp开发者的laravel系列教程(九)打印数据-Fun言
  2. 时间罗盘html源代码_重磅!Vue 3.0源代码公布后,究竟有哪些变更?
  3. php中的__autoload()函数
  4. java设计模式之委派模式
  5. wxWidgets:wxMaximizeEvent类用法
  6. Boost:用OpenCL编写的简单flip filter的测试程序
  7. c语言密码锁程序,急求C语言电子密码锁程序
  8. 数据写入磁盘的过程,咔咔的!
  9. 分享一位电商大佬的技术笔记
  10. SSH Mybatis 框架
  11. 玩机搞机---mtk芯片机型线刷救砖的一些基本解决方法和步骤解析 mtk报错代码 SP_Flash平台刷机
  12. verycd下载资源
  13. linux怎样删除链接文件,在 Linux 中怎样移除(删除)符号链接
  14. Windows动态库DllMain
  15. 扫描项目中的二维码关注微信公众号
  16. 罗格斯大学计算机科学属哪个学院,罗格斯大学工程学院信息介绍以及申请条件详细解读...
  17. 探索多层次内存系统的页面管理设计空间Exploring the Design Space of Page Management for Multi-Tiered Memory Systems
  18. 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins
  19. 用JAVA代码利用坐标构造三角形、椭圆、直线并求其周长、面积
  20. 江郎才尽者,小刀也,故。。。

热门文章

  1. 让ubuntu在一个窗口下打开多个终端的软件——terminator
  2. Java基础面试题:AQS组件总结
  3. Java基础篇:如何使用return语句
  4. 《游戏编程模式》一第7章 状态模式
  5. 初学Java必写的小程序。
  6. Windows Phone 7, Hammock, OAuth and Sina Weibo’s API
  7. k-means聚类分析的C++实现
  8. winform C#中Byte与String的转换方法,相互转换
  9. 【DFS + backtrack】LeetCode 93. Restore IP Addresses
  10. ubuntu 上 nvidia-smi 没显示所有的GPU