web-dev-qa-db-fra.com

Compte système verrouillé, privilèges insuffisants pour se connecter en tant que Sysdba

J'ai fait des recherches sur le Web mais je n'ai pas pu trouver exactement la même situation que la mienne, donc je pose ce message.

Je me connecte via une connexion de bureau à distance à un serveur distant (serveur Win2K3). Ce serveur a installé (sélectionnez * à partir de V $ version):

  • Base de données Oracle 10G Enterprise Edition version 10.2.0.5.0 - Prod
  • PL/SQL version 10.2.0.5.0 - Production
  • Noyau 10.2.0.5.0 Production
  • TNS pour Windows 32 bits: version 10.2.0.5.0 - Production
  • NLSRTL version 10.2.0.5.0 - Production

Exécution de ces deux phrases renvoie une erreur:

c:\> sqlplus
SQL> conn / as sysdba
Insufficient privileges
SQL> connect system/****
Account locked

L'ordinateur distant est où le DB est installé, de sorte que je ne connecte pas à une DB distante. Le compte utilisateur Windows appartient aux groupes Windows Administrator et ORA_DBA.

DB n'a qu'un seul utilisateur disponible (celui utilisé par l'application que nous développons), mais il n'a pas suffisamment de privilèges pour modifier le compte système et le déverrouiller.

Je n'ai aucune idée de quoi puis-je faire, car je n'ai aucun moyen de se connecter à DED en tant qu'administrateur. J'espère avoir fourni suffisamment de données pour ma question, si j'ai raté quelque chose s'il vous plaît demander.

éditer : J'ai vérifié à nouveau l'adhésion de l'utilisateur Windows: administrateurs, ora_dba, utilisateurs et "utilisateurs de lieux de travail distants" (espère que j'ai traduit la dernière à droite). PWD%Oracle_SID%.ora Le fichier n'existe pas (supposons que cela ait raison).

Edit2 : Je me connecte à la DB locale. J'ai trouvé 3 installé SQLPlus: One de Oracle Forms 6i (oui, je sais que c'est une version vraiment ancienne), une autre du client Oracle 10, et du dernier de Oracle 10 DB. Je ne savais pas à la recherche de Oracle_Home dans HKLM/SOFTWARE/Oracle, comme je suis lu dans un commentaire. Dans le registre, toutes les entrées que j'ai trouvées pointent sur le dossier Oracle Forms. J'ai essayé de courir SQLPlus avec Plein Path, le SQLPlus appartenant à une installation de DB, et enfin que j'ai connecté conn / as sysdba Et j'ai exécuté la phrase de compte de déverrouillage, le problème est donc résolu car mon objectif était de déverrouiller le compte système.

1
EAmez

Le compte utilisateur Windows appartient aux groupes Windows Administrator et ORA_DBA.

Double Vérifiez cela, car vous obtenez l'erreur ci-dessus, lorsque vous n'êtes pas membre du groupe ORA_DBA.

Cochez %Oracle_HOME%/network/admin/sqlnet.ora Pour la ligne suivante:

SQLNET.AUTHENTICATION_SERVICES=(NTS)

S'il est réglé sur NONE, cela désactive la connexion avec / as sysdba, Mais une erreur ORA-01017: invalid username/password; logon denied.

Enfin, SYS mot de passe est stocké en dehors de la base de données, dans un fichier, sous Windows, il est %Oracle_HOME%/database/PWD%Oracle_SID%.ora. Vous pouvez le recréer (donner un nouveau mot de passe SYS) comme suit:

orapwd file=%Oracle_HOME%/database/PWD%Oracle_SID%.ora force=y

Après cela, vous pouvez être capable de vous connecter avec le mot de passe donné comme suit:

connect sys/password as sysdba

4
Balazs Papp
  • er os [~ # ~ # ~ # ~] : Linux
  • oracle : Version 11.2.0.1.0 - Production
  • erreur :

    SQL> connect sys as sysdba;
    Enter password:
    ERROR:
    ORA-01031: insufficient privileges
    

Et j'ai utilisé les instructions de Balazs-Papp mais être un environnement Linux, la syntaxe de commande est modifiée, mais le processus est le même:

cd  $Oracle_HOME/dbs
ls -la
ls -lrt *orapw*
orapwd file=orapwEE force=y

ça marche !!!

0

Modifier le paramètre distant_login_passwordfile = exclusif en utilisant Pfile ou SPFILE. Créez à nouveau SPFILE qui contient une fermeture au-dessus de l'arrêt Oracle à l'aide de Windows Services Exécutez ORAPWD File =% oracle_home%/Base de données/PWD% Oracle_sid% .Ora Force = Y Utilisation de CMD .. Redémarrez votre session SQL et de vous connecter/en tant que SYSDBA et redémarrez DB.

Je pense que votre distance_login_passwordfile = Aucune ou ne peut pas correctement. En raison de cette raison, vous frappez cette question.

0
doc123