J'utilise Oracle pour le développement. Le mot de passe d'un compte bootstrap que j'utilise toujours pour reconstruire ma base de données a expiré.
Comment désactiver définitivement l'expiration du mot de passe pour cet utilisateur (et tous les autres utilisateurs)?
J'utilise Oracle 11g, dont les mots de passe expirent par défaut.
Réponses:
Pour modifier la politique d'expiration de mot de passe pour un certain profil utilisateur dans Oracle, vérifiez d'abord quel profil l'utilisateur utilise:
Ensuite, vous pouvez modifier la limite pour qu'elle n'expire jamais en utilisant:
Si vous souhaitez vérifier au préalable la limite, vous pouvez utiliser:
la source
select username,expiry_date,account_status from dba_users;
pour afficher le account_status. pour ces comptes expirant, vous devrez peut-être réinitialiser le mot de passe une fois pour la dernière fois.ALTER USER Bob PROFILE MyNonExpiringProfile;
.Pour le développement, vous pouvez désactiver la politique de mot de passe si aucun autre profil n'a été défini (c'est-à-dire désactiver l'expiration du mot de passe par défaut):
Ensuite, réinitialisez le mot de passe et déverrouillez le compte utilisateur. Il ne devrait plus jamais expirer:
la source
Comme l'état des autres réponses, changer le profil de l'utilisateur (par exemple le profil «DEFAULT») de manière appropriée conduira à des mots de passe qui, une fois définis, n'expireront jamais.
Cependant, comme le souligne un commentateur, les mots de passe définis sous les anciennes valeurs du profil peuvent déjà être expirés et (si après la période de grâce spécifiée par le profil) le compte est verrouillé.
La solution pour les mots de passe expirés avec des comptes verrouillés (comme indiqué dans un commentaire de réponse) consiste à utiliser une version de la commande ALTER USER:
Cependant, la commande de déverrouillage ne fonctionne que pour les comptes où le compte est réellement verrouillé, mais pas pour les comptes qui sont dans la période de grâce, c'est-à-dire où le mot de passe a expiré mais le compte n'est pas encore verrouillé. Pour ces comptes, le mot de passe doit être réinitialisé avec une autre version de la commande ALTER USER:
Vous trouverez ci-dessous un petit script SQL * Plus qu'un utilisateur privilégié (par exemple, l'utilisateur «SYS») peut utiliser pour réinitialiser le mot de passe d'un utilisateur à la valeur hachée actuelle stockée dans la base de données.
EDIT: les anciennes versions d'Oracle stockent le mot de passe ou le mot de passe-hachage dans la colonne pword, les versions plus récentes d'Oracle stockent le mot de passe-hachage dans la colonne spare4. Le script ci-dessous a changé pour collecter les colonnes pword et spare4, mais pour utiliser la colonne spare4 pour réinitialiser le compte de l'utilisateur; modifier au besoin.
la source
Je crois que le comportement d'expiration du mot de passe, par défaut, est de ne jamais expirer. Cependant, vous pouvez configurer un profil pour votre ensemble d'utilisateurs de développement et définir le fichier
PASSWORD_LIFE_TIME
. Voir l' orafaq pour plus de détails. Vous pouvez voir ici un exemple de la perspective et de l'utilisation d'une personne.la source
Je suggérerai que ce n'est pas une bonne idée de désactiver l'expiration du mot de passe car cela peut conduire à des menaces possibles pour la confidentialité, l'intégrité et la disponibilité des données.
Cependant, si vous le souhaitez.
Si vous avez un accès approprié, utilisez SQL suivant
Cela devrait vous donner un résultat comme celui-ci.
Vous pouvez maintenant utiliser la réponse de Pedro Carriço https://stackoverflow.com/a/6777079/2432468
la source