首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户无法停止Oracle侦听器(TNS-01190)

用户无法停止Oracle侦听器(TNS-01190)
EN

Database Administration用户
提问于 2012-11-12 10:44:13
回答 3查看 29.8K关注 0票数 1

我在RedHat EnterpriseLinux5上安装了Oracle10g。

我有两个用户使用Oracle:

代码语言:javascript
复制
uid=501(user1) gid=502(group1) groupes=500(oinstall),501(dba),502(group1)

代码语言:javascript
复制
uid=500(oracle) gid=500(oinstall) groupes=500(oinstall),501(dba),502(group1)

当用户试图停止另一个用户启动的侦听器时,我得到以下错误:

代码语言:javascript
复制
TNS-01190: The user is not authorized to execute the requested listener command

无论是谁启动侦听器,我如何允许两个用户停止侦听器?

EN

回答 3

Database Administration用户

回答已采纳

发布于 2012-11-12 14:59:56

您所看到的消息的描述是:

原因:大多数侦听器管理命令只打算由特权用户(例如DBA或系统管理员)发出。如果未设置侦听器密码,则侦听器只接受以相同OS凭据运行的LSNRCTL的管理请求,或以本地管理员(也称为超级用户)的身份运行。操作:如果授权用户正在尝试该命令,请确保LSNRCTL使用与运行的侦听器或本地管理员相同的OS用户凭据执行。

除非您想进入setuid包装程序,否则需要为侦听器设置密码。如果您还没有这样做,那么我们可以很好地总结一下如何设置这里

然后,如果您像oracle一样正常地启动监听器,您可以通过进入控制器的交互模式,输入命令'set password',并输入侦听器的密码,从而关闭它为user1

代码语言:javascript
复制
$ lsnrctl

LSNRCTL for Solaris: Version 11.2.0.2.0 - Production on 12-NOV-2012 14:55:29

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> stop
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
TNS-01190: The user is not authorized to execute the requested listener command
LSNRCTL> set password
Password: <secret>
The command completed successfully
LSNRCTL> stop
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
The command completed successfully
LSNRCTL>

..。它应该关机。我知道这是一个不同的O/S和版本,但原则是一样的。相反,如果您将其启动为user1,则需要set password才能将其关闭为oracle

然而,这是从11gR2中不推荐的..人工辅导使用ssh或OEM,但您也可以让user1切换到oracle帐户,通过su启动和停止侦听器。显然,这给了他们完全的DBA访问权限,它并不局限于侦听器,ssh也是如此。

我不知道为什么要让不信任的人来管理数据库来处理侦听器,也不知道为什么需要关闭它并经常启动它,使其成为一个问题。

票数 4
EN

Database Administration用户

发布于 2017-06-22 11:15:04

sysdba身份登录并运行:

代码语言:javascript
复制
alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;

alter system register;

它在我身上起作用了。

票数 -2
EN

Database Administration用户

发布于 2021-01-17 03:07:14

代码语言:javascript
复制
alter system 
    set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;

alter system register;

也为我工作过

票数 -2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/28578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档