我在RedHat EnterpriseLinux5上安装了Oracle10g。
我有两个用户使用Oracle:
uid=501(user1) gid=502(group1) groupes=500(oinstall),501(dba),502(group1)和
uid=500(oracle) gid=500(oinstall) groupes=500(oinstall),501(dba),502(group1)当用户试图停止另一个用户启动的侦听器时,我得到以下错误:
TNS-01190: The user is not authorized to execute the requested listener command无论是谁启动侦听器,我如何允许两个用户停止侦听器?
发布于 2012-11-12 14:59:56
您所看到的消息的描述是:
原因:大多数侦听器管理命令只打算由特权用户(例如DBA或系统管理员)发出。如果未设置侦听器密码,则侦听器只接受以相同OS凭据运行的LSNRCTL的管理请求,或以本地管理员(也称为超级用户)的身份运行。操作:如果授权用户正在尝试该命令,请确保LSNRCTL使用与运行的侦听器或本地管理员相同的OS用户凭据执行。
除非您想进入setuid包装程序,否则需要为侦听器设置密码。如果您还没有这样做,那么我们可以很好地总结一下如何设置这里。
然后,如果您像oracle一样正常地启动监听器,您可以通过进入控制器的交互模式,输入命令'set password',并输入侦听器的密码,从而关闭它为user1:
$ 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也是如此。
我不知道为什么要让不信任的人来管理数据库来处理侦听器,也不知道为什么需要关闭它并经常启动它,使其成为一个问题。
发布于 2017-06-22 11:15:04
以sysdba身份登录并运行:
alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;
alter system register;它在我身上起作用了。
发布于 2021-01-17 03:07:14
alter system
set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;
alter system register;也为我工作过
https://dba.stackexchange.com/questions/28578
复制相似问题