デフォルトで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までしかサポートしていないためだと思います。これは非常に一般的です。
mrdenny、2013年

mrdennyへ:ソフトウェアベンダーはこれを問題とは見なしていません。
Arty

回答:


6

これは、DDLイベントをキャプチャする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

SQL 2005でDDLトリガーを使用できましたか?
mrdenny、2013年


涼しい。私はSQL 2005で何かエキサイティングなことをしなければならなかったので、久しぶりです。私の人生では思い出せませんでした。彼らも私の提案だったでしょう。
mrdenny、2013年

ドキュメントのどこにも、デフォルトでオフにされていないCHECK_POLICYについての記述はありません。しかし、それはそうであるようです。
Arty

@Arty:あちこちを見回した。さまざまなMS SQL Serverブログを含みます。私が読んだものからグローバルに設定することはできません。
gbn 2013年

0

MUST_CHANGEでログインを作成し、ユーザーがデフォルトのパスワードを変更しなかった場合、これらは機能しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.