web-dev-qa-db-ja.com

Oracle Database 12c:TNS:Permission Denied(CentOS)

(この投稿のタイトルは別の投稿と似ていますが、根本的な原因と解決策はまったく異なります。)

問題:

Sysdbaとしてsqlplusにログインできませんが、リスナーが起動しているようです

[John@localhost ~]$ lsnrctl start

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 13-AUG-2015 18:19:03

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

Starting /home/John/app/John/product/12.1.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.1.0.2.0 - Production
System parameter file is /home/John/app/John/product/12.1.0/dbhome_1/network/admin/listener.ora
Log messages written to /home/John/app/John/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=localhost)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                13-AUG-2015 18:19:03
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/John/app/John/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /home/John/app/John/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

リスナーは起動しているようですが、TNSリスナーはsysdbaログインを拒否します。

[John@localhost ~]$  sqlplus -prelim / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Aug 13 18:25:49 2015

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

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: ^C
[John@localhost ~]$

考えられる原因:

これが発生する数日前にログインできました。この問題を引き起こしたと考えられる唯一のことは、John:Johnが所有するすべてのファイルとフォルダーをJohn:Usersに変更し、UsersJohn。なぜそれが問題になるのかはわかりません。それが重要であるならば、それは確かにそうすべきではありません。

/ as sysdbaがTNSリスナーによって突然拒否された理由について、より詳細な情報を入手するにはどうすればよいですか?それがグループの変更に明確に関連している場合、認証エラーを修正しながら、グループの設定をそのままにするために、どのような変更を行う必要がありますか?

2
John

この構文は、リスナーをまったく使用しません。

sqlplus -prelim / as sysdba

ただし、OSグループベースのSYSDBA認証が失敗したため、認証エラーが発生しました。以下を確認してください:

cat $Oracle_HOME/rdbms/lib/config.c

そこで、次のような行が表示されます。

#define SS_DBA_GRP "John"

上記で定義されたOSグループのメンバーである/ as sysdbaを使用できるのは、それらのユーザーのみです。 OSDBAグループをJohnに設定してデータベースソフトウェアをインストールし、グループをUsersに変更した場合、/ as sysdbaを使用できなくなります。

OSDBAグループを新しいグループに変更する場合は、上記のファイルを編集し、必要な値を設定し、Oracle_HOME(データベース、リスナー)から実行中のすべてのものをシャットダウンして、次を実行します。

$Oracle_HOME/bin/relink all

2
Balazs Papp

「リスナーはサービスをサポートしていません」とそれはすべて言います。

データベースは稼働していますか?

sqlplus /nolog as sysdba 

これにより、アイドル状態のインスタンスに接続しているか、データベースが実行中かがわかります。

データベースは稼働していますか?動的または静的登録を使用していますか?データベースがリスナーに登録されると、接続できるようになります。そしてあなたがするとき:

lsnrctl status

リスナーが知っているサービスをリストする必要があります。

1
Stringer