ora 12546 linux,ORA-12546: TNS:permission denied

本文介绍了在Oracle数据库未配置监听的情况下,如何使用BEQ协议进行本地连接。然而,BEQ协议仅适用于本地连接,并且可能存在权限问题。当尝试以root用户连接时,可能会遇到权限被拒绝的错误(ORA-12546)。通过查看sqlnet.log日志,发现错误源于权限不足。为解决这个问题,文章建议在连接字符串中指定用户,例如使用'USER=oracle',从而成功以sysdba身份连接数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sqlplus "sys/oracle@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=orcl'))(CONNECT_DATA=(SID=orcl))) as sysdba"

此方法可以在数据库没有配置监听的情况下连接数据库,

但是beq方式只适合本地连接,和TCP连接方式存在差异。

如果存在root下连接,有可能会报错:

[root@localhost ~]# sqlplus "sys/oracle@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=orcl'))(CONNECT_DATA=(SID=orcl))) as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Sep 10 14:56:23 2015

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:

ORA-12546: TNS:permission denied

Enter user-name:

查看对应的sqlnet.log 日志文件:

发下如下错误:

***********************************************************************

Fatal NI connect error 12546, connecting to:

(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=localhost.localdomain)(USER=root))))

VERSION INFORMATION:

TNS for Linux: Version 10.2.0.1.0 - Production

Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production

TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production

Time: 10-SEP-2015 14:17:52

Tracing not turned on.

Tns error struct:

ns main err code: 12546

TNS-12546: TNS:permission denied

ns secondary err code: 12560

nt main err code: 516

TNS-00516: Permission denied

nt secondary err code: 13

nt OS err code: 0

我们可以修改最后面的(USER=root) 选项,指定用户进行连接,如下:

sqlplus "sys/oracle@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/product/10.2.0/db_1/bin/oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=localhost.localdomain)(USER=oracle)))) as sysdba"

即可解决以上问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值