Est-il possible de changer le mot de passe pour un identifiant avec un mot de passe expiré à l'aide de Objets de gestion SQL Server (SMO) Programmation?
Plusieurs fois pendant les heures de travail, j'ai reçu ce message d'un serveur de production. J'ai un privilège de niveau "SA" dans SQL Server.
Vous pouvez utiliser login.changepassword Méthode:
public void ChangePassword(
string newPassword,
bool unlock,
bool mustChange
)
Vous pouvez également modifier le mot de passe à l'aide de T-SQL:
USE [master]
GO
ALTER LOGIN [test] WITH PASSWORD=N'123456'
GO
L'âge de mot de passe maximum peut être défini:
Il peut également être défini par AD et GPO.
Complétant à Réponse de Julien , Vous pouvez être proactif pour planifier ci-dessous TSQL en tant que travail pour vous alerter quotidiennement sur - DaysUntilExpiration
de LOGINPROPERTY
par exemple Obtenez toutes les connexions de votre serveur de base de données qui vont expirer dans 2 jours.
SELECT name as LoginName,
create_date as LoginCreateDate,
modify_date as LoginModifiedDate,
is_policy_checked ,
is_expiration_checked ,
-- returns the number of days until the password expires.
LOGINPROPERTY(name, 'DaysUntilExpiration') DaysUntilExpiration,
LOGINPROPERTY(name, 'PasswordLastSetTime') PasswordLastSetTime,
LOGINPROPERTY(name, 'IsExpired') IsExpired,
LOGINPROPERTY(name, 'IsMustChange') IsMustChange
From sys.sql_logins
--- optional filter
-- where LOGINPROPERTY(name, 'DaysUntilExpiration') >= 2