Désactiver CHECK_POLICY par défaut

8

Nous sommes passés de SQL Server 2000 à SQL Server 2005. Le logiciel client, que je ne peux pas changer, crée un utilisateur sans option

CHECK_POLICY = OFF;

Après avoir créé un utilisateur, je dois exécuter la commande

ALTER LOGIN username WITH CHECK_POLICY = OFF;

Désactiver la politique, comme recommandé, je ne peux pas.

Est-il possible de désactiver la valeur par défaut CHECK_POLICYsans son CREATE LOGINutilisateur créé avec CHECK_POLICY = OFF?

Arty
la source
2
Pourquoi passez-vous d'une version ancienne à une autre version ancienne? Nous avons eu 3 nouvelles versions depuis votre "nouvelle" version.
Marian
2
Je suppose que la réponse à cette question est parce que le fournisseur de logiciels ne prend en charge que SQL 2005. C'est très courant.
mrdenny
Pour mrdenny: le fournisseur de logiciels ne considère pas cela comme un problème.
Arty

Réponses:

6

Vous le faites avec un déclencheur DDL qui capture l'événement DDL pour CREATE LOGIN

CREATE TRIGGER PolicyStuff
ON ALL SERVER
FOR CREATE_LOGIN
AS
SET NOCOUNT ON;
IF EVENTDATA().value('(/EVENT_INSTANCE/LoginType)[1]','nvarchar(100)') = 'SQL Login'
BEGIN
    DECLARE @sql nvarchar(1000) = 'ALTER LOGIN ' + QUOTENAME(EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(max)')) + ' WITH CHECK_POLICY = OFF;';
    EXEC(@sql);
END
GO

CREATE LOGIN foo WITH PASSWORD='C-mplex654Password', CHECK_POLICY=ON;
GO
SELECT SL.name, SL.is_policy_checked FROM sys.sql_logins SL WHERE SL.name = 'foo'
GO
DROP LOGIN foo
GO
gbn
la source
Les déclencheurs DDL étaient-ils disponibles dans SQL 2005?
mrdenny
Cool. Cela fait un moment que je n'ai rien fait d'excitant avec SQL 2005. Je ne m'en souviens pas pour la vie. Ils auraient également été ma suggestion.
mrdenny
Je ne suis nulle part dans la documentation ne trouve aucune mention de ce que CHECK_POLICY ne doit pas être désactivé par défaut. Mais il semble que ce soit ainsi.
Arty
@Arty: J'ai aussi regardé partout. Y compris divers blogs MS SQL Server. Il ne peut pas être défini globalement à partir de ce que j'ai lu.
gbn
0

ceux-ci ne fonctionneront pas si vous avez créé votre connexion avec MUST_CHANGE et que l'utilisateur n'a pas changé le mot de passe par défaut, sinon son bon fonctionnement ...


la source