Отключение CHECK_POLICY по умолчанию

8

Мы перешли с SQL Server 2000 на SQL Server 2005. Клиентское программное обеспечение, которое я не могу изменить, создает пользователя без опции

CHECK_POLICY = OFF;

После создания пользователя я должен запустить команду

ALTER LOGIN username WITH CHECK_POLICY = OFF;

Отключить политику, как рекомендовано, я не могу.

Можно ли отключить настройки по умолчанию, CHECK_POLICYкоторые без ее CREATE LOGINпользователя созданы с помощью CHECK_POLICY = OFF?

с претензией на художественность
источник
2
Почему вы переходите с древней версии на другую древнюю версию? У нас было 3 новых версии, так как ваша "новая" версия.
Мариан
2
Я бы предположил, что ответ на этот вопрос заключается в том, что поставщик программного обеспечения поддерживает только до SQL 2005. Это очень распространено.
Мрденный
Мрденный: поставщик программного обеспечения не считает это проблемой.
Арти

Ответы:

6

Вы делаете это с помощью DDL Trigger, который захватывает событие DDL для 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
ГБН
источник
Были ли триггеры DDL доступны в SQL 2005?
Мрденный
Круто. Прошло много времени с тех пор, как я должен был сделать что-то захватывающее с SQL 2005. Не могу вспомнить, на всю жизнь Они были бы моим предложением также.
Мрденный
Я нигде в документации не нахожу никаких упоминаний о том, что CHECK_POLICY не будет отключен по умолчанию. Но, похоже, так оно и есть.
Арти
@Arty: я тоже посмотрел. Включая различные блоги MS SQL Server. Это не может быть установлено глобально из того, что я прочитал.
ГБН
0

они не будут работать, если вы создали свой логин с помощью MUST_CHANGE и пользователь не изменил пароль по умолчанию, в противном случае он работает нормально ...


источник