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):
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.
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
Linux
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 !!!
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.