===== Mit Password File an der DB als sysdba anmelden und den „ORA-01031: insufficient privileges vermeiden“ ==== Ziel ist es sich bei einer gestoppten Datenbank als SYS User anzumelden, um diese remote starten zu können. ====Vorbereitung==== === listener.ora === Listener.ora mit einem statischen Eintrag erweitern um die DB remote starten und stoppen zu können. # Dedicated Service SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=GPITESTDB) (SID_NAME=GPITESTDB) (ORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1))) === DB Parameter === Um die DB remote zu starten, muss der init.ora parameter auf *.remote_login_passwordfile='exclusive' gesetzt sein. show parameter remote_login_passwordfile === Password file === Eine Password Datei **orapw** muss in **$ORACLE_HOME/dbs** existieren. Neu anlegen mit: orapwd file=$ORACLE_HOME/dbs/orapwGPIDB password=abcd123 force=y nosysdba=n Falls eine neue Password Datei erzeugt wurde, DB stoppen und wieder starten, erneut testen. === tnsname.ora eintrag (local und remote)=== TNS Eintrag für die DB erstellen. ==== Connect testen ==== Fehler: ORA-01031: insufficient privileges sqlplus sys@GPIDB_AUX as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Sat Dec 14 12:09:57 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. Enter password: ERROR: ORA-01031: insufficient privileges Tritt dieser Fehler auf sorgfältig die obigen Punkte prüfen, das auch alles richtig eingerichtet ist. ===Weitere Fehler überprüfen:=== == DBA Gruppe prüfen == Über die Datei $ORACLE_HOME/rdbms/lib/config.c kann geprüft werden welche Gruppe bei der DB Installation als berechtigte Gruppe für den localen "/ as sysdba" konfiguriert wurde. Unter der Gruppe sollte die DB auch laufen! id orace uid=54321(oracle) gid=54321(oinstall) groups=54322(dba),54321(oinstall) cat $ORACLE_HOME/rdbms/lib/config.c ... #define SS_DBA_GRP "dba" #define SS_OPER_GRP "dba" #define SS_ASM_GRP "" char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP, SS_ASM_GRP}; ps uafx |grep smon oracle 29745 0.0 0.1 24878360 213632 ? Ss Dec15 0:06 ora_smon_DBGPI1 #Wem gehören die LIstenerprozesse? ps –ef| grep tns Hier kann erkannt werden das die Datenbank mit der Gruppe DBA angelegt wurde und auch unter dem Oracle User läuft. Entsprechend muss die Berechtigung auf dem Password File geprüft werden. == PWD File mit SQL*Plus auslesen == SQL> select * from V$PWFILE_USERS; == Permission auf der Password Datei prüfen == ls -la -rw-r----- 1 oracle oinstall 1536 Dec 16 00:30 orapwGPI1 ====Quellen==== * Troubleshooting ORA-1031 Insufficient Privilege While Connecting As SYSDBA [ID 730067.1] * UNIX: Diagnostic C program for ORA-1031 from CONNECT INTERNAL / AS SYSDBA (Doc ID 67984.1)