Desactivar CHECK_POLICY por defecto

8

Nos mudamos de SQL Server 2000 a SQL Server 2005. El software del cliente, que no puedo cambiar, crea un usuario sin opción.

CHECK_POLICY = OFF;

Después de crear un usuario, tengo que ejecutar el comando

ALTER LOGIN username WITH CHECK_POLICY = OFF;

Deshabilitar la política, como se recomienda, no puedo.

¿Es posible deshabilitar el valor predeterminado CHECK_POLICYque sin su CREATE LOGINusuario creó con CHECK_POLICY = OFF?

Pretensioso
fuente
2
¿Por qué pasa de una versión antigua a otra versión antigua? Teníamos 3 nuevas versiones desde su "nueva" versión.
Marian
2
Supongo que la respuesta a esa pregunta se debe a que el proveedor de software solo admite hasta SQL 2005. Es muy común.
mrdenny
Para mrdenny: el vendedor de software no considera que esto sea un problema.
Arty

Respuestas:

6

Lo haces con un disparador DDL que captura el evento DDL para 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
fuente
¿Los activadores DDL estaban disponibles en SQL 2005?
mrdenny
Frio. Ha pasado un tiempo desde que tuve que hacer algo emocionante con SQL 2005. No podría recordarlo. Hubieran sido mi sugerencia también.
mrdenny
No estoy en ninguna parte de la documentación, no encuentro ninguna mención de lo que CHECK_POLICY no está desactivado por defecto. Pero parece que así es.
Arty
@Arty: también miré por todas partes. Incluyendo varios blogs de MS SQL Server. No se puede establecer globalmente a partir de lo que leo.
Gbn
0

estos no funcionarán si ha creado su inicio de sesión con MUST_CHANGE y el usuario no cambió la contraseña predeterminada; de lo contrario, funciona bien ...


fuente