你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
oracle 基础(8)
 
$ chmod 0711 lsnrctl

然而,在这种情况下,您应该通过强制使用密码防止未经授权的使用。 当您设置密码时,所有命令(HELP 等某些善意的命令除外)都被禁用。

设置密码的方式在所有版本中都一样,但是实施机制不同:

  • 在 Oracle9i 数据库第 2 版和更低版本中,所有用户都需要密码。
  • 在 Oracle 数据库 10g 第 1 版和更高版本中,拥有数据库软件的 OS 用户不需要密码。 所有其他用户需要密码。

下面介绍如何设置密码:

$ lsnrctl

LSNRCTL> change_password
Old password: <OldPassword> Not displayed
New password: <NewPassword> Not displayed
Reenter new password: <NewPassword> Not displayed
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)(IP=FIRST)))
Password changed for LISTENER
The command completed successfully

如果您是首次设置密码,可以在要求提供“旧密码”时按 ENTER 键。 更改之后,将其保存到参数文件中:

LSNRCTL> save_config

该命令将对密码进行加密,并将其放到监听程序参数文件中。 您可以稍后对其进行检查:

#----ADDED BY TNSLSNR 24-OCT-2005 17:02:28---
PASSWORDS_LISTENER_ODSSDB01 = 75CD180DE6C75466
#--------------------------------------------

在决定使用命令时,您需要提供正确的密码。 (在 Oracle 数据库 10g 和更高版本中,拥有该软件的 OS 用户不需要密码。)

LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-01169: The listener has not recognized the password

要传递正确的密码,请执行以下内容:

LSNRCTL> set password mypassword
The command completed successfully
LSNRCTL> status
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
...

如果传递的密码不正确,您将收到以下错误信息

TNS-01169: The listener has not recognized the password.

如果没有传递密码并尝试执行强大的命令,您将收到以下错误信息

TNS-01190: The user is not authorized to execute the requested listener command

要确认密码是否有效,请查看监听程序的 STATUS 显示中的设置。 为此,可发出以下命令:

$ lsnrctl status

版本间的输出不同。 对于 Oracle9i 数据库,下面是部分输出:

STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Solaris: Version 9.2.0.6.0 - Production
Start Date                25-OCT-2005 10:26:47
Uptime                    0 days 13 hr.53 min. 8 sec
Trace Level               off
Security                  ON

注意最后一行 (Security ON),它指示已设置密码。

在 Oracle 数据库 10g 中,该进程稍有不同。 请记住,在该版本中,监听程序设置为了仅 Oracle 软件所有者可执行,无需密码。 如果已经设置了密码,则其他用户可以在提供密码后执行监听程序。 下面是状态显示:

STATUS of the LISTENER
------------------------
Alias                     LISTENER_ODSPDB02
Version                   TNSLSNR for HPUX:Version 10.1.0.4.0 - Production
Start Date                16-OCT-2005 05:58:35
Uptime                    9 days 17 hr.44 min. 41 sec
Trace Level               off
Security                  ON:Local OS Authentication

注意最后一行 ON: Local OS Authentication,它指示尚未设置密码。 如果设置了密码,该行显示为:

Security                  ON: Password or Local OS Authentication

注意上面添加的子句 Password,它指示已经设置密码。

结论
在 Oracle 数据库 10g 和更高版本中,使用 OS 身份验证来验证用户,没有必要提供密码来启动或停止监听程序。 在 Oracle9i 和更低版本中,您需要提供密码,因此脚本需要密码。

操作计划
IF Oracle 数据库 10g 或更高版本 THEN
  删除所有用户的权限,所有者除外
ELSE
  删除所有用户的权限,所有者除外
设置操作监听程序的密码
END IF


1.7 保护监听程序

背景
创建一个缓冲区溢出,即通过发送要执行的大型字符串使监听程序崩溃是常用的入侵策略。 另一种常用策略是使用 SET DISPLAYMODE VERBOSE 从 lsnrctl 实用工具查看各种组件。 在这种情况下,黑客可以通过在有漏洞的计算机上运行 lsnrctl 以管理目标服务器上的监听程序来操纵设置。下面就是一个例子:

LSNRCTL> set trc_level support
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)))
LISTENER parameter "trc_level" set to support
The command completed successfully
LSNRCTL> set trc_directory /tmp
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)))
LISTENER parameter "trc_directory" set to /tmp
The command completed successfully
(编辑:aniston)
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089