Sql-Server

禁用部分包含數據庫的密碼策略

  • November 23, 2020

我陷入了需要為部分包含的數據庫(SQL Server 2016)創建新使用者的情況。密碼很短,所以我收到一個錯誤:

密碼驗證失敗。密碼太短,不符合 Windows 策略要求。

在實例級別創建登錄時,可以選擇取消選中“強制密碼策略”、“強制密碼過期”和“使用者下次登錄時必須更改密碼”。為部分包含的數據庫創建使用者時沒有這樣的選項。

有沒有辦法解決這個問題?

由於文件的語法部分CREATE USER不包含該選項,因此我認為該命令CHECK_POLICY不可能。CREATE USER

似乎實現它的唯一方法是一種解決方法。您應該使用sp_migrate_user_to_contained創建一個普通的 SQL Server 登錄CHECK_POLICY = OFF並遷移它。

CREATE DATABASE Test;
GO

EXECUTE sp_configure 'contained database authentication', 1;
RECONFIGURE;
GO

ALTER DATABASE Test
SET RESTRICTED_USER
WITH ROLLBACK IMMEDIATE;
GO

ALTER DATABASE Test
SET containment=partial;
GO

ALTER DATABASE Test
SET MULTI_USER;
GO

USE Test;  
GO 

CREATE LOGIN userWeakPWD  
WITH PASSWORD='pwd', CHECK_POLICY = OFF;
GO

CREATE USER userWeakPWD
FOR LOGIN userWeakPWD;
GO

EXEC sp_migrate_user_to_contained 
   @username = N'userWeakPWD',
   @rename = N'keep_name',
   @disablelogin = N'disable_login';
GO

我找不到來自 Microsoft 的任何文件,說明使用 . 創建新的包含使用者的現有限制CHECK_POLICY = OFF,但我沒有幸運地找到一個正式解釋如何實現它的文件。


資料來源:CHECK_POLICY = OFF 包含 CREATE USER 聲明(致 Shulei Chen)

引用自:https://dba.stackexchange.com/questions/280142