এটি আপনার ব্যবহারকারীর মধ্যে জনপ্রিয় নাও হতে পারে তবে আমি বিশ্বাস করি যে আপনি কেবলমাত্র নিশ্চিতভাবে জানতে পারেন যে প্রতিটি এসকিউএল লগইন করে একটি পাসওয়ার্ড পরিবর্তন করার জন্য বাধ্য করা CHECK_POLICY = ON
। এটি ALTER LOGIN
ফাঁকা পাসওয়ার্ড সহ কমান্ডের একটি সেট উত্পন্ন করবে , আপনি তাদের সমস্ত সাধারণ পাসওয়ার্ড দেওয়ার জন্য ক্যোয়ারী আপডেট করতে পারেন বা স্বতন্ত্র পাসওয়ার্ড সহ প্রত্যেককে ম্যানুয়ালি আপডেট করতে পারেন - কেবল নিশ্চিত করুন যে তারা আপনার নীতিটি পূরণ করেছে। অবশ্যই আপনার অবশ্যই নিশ্চিত হওয়া দরকার যে পাসওয়ার্ড নীতিটি আপনার প্রত্যাশার মতোই জটিল এবং এটি সক্ষম হয়েছে (কন্ট্রোল প্যানেল> প্রশাসনিক সরঞ্জাম> স্থানীয় সুরক্ষা নীতি> অ্যাকাউন্ট নীতিসমূহ> পাসওয়ার্ড নীতি> পাসওয়ার্ড অবশ্যই জটিলতার প্রয়োজনীয়তা পূরণ করবে)।
SELECT N'ALTER LOGIN ' + QUOTENAME(name)
+ N' WITH PASSWORD = N'''' MUST_CHANGE, CHECK_POLICY = ON;'
FROM sys.sql_logins
--WHERE is_policy_checked = 0;
স্টিভ জোনস কিছুক্ষণ আগে এই সম্পর্কে লিখেছিলেন । মনে রাখবেন - আমি নীচে যা খুলেছি তার কারণে - আপনি is_policy_checked = 1
যেহেতু পাসওয়ার্ডটি আপনার বর্তমান নীতিটি পূরণ করে তার উপর নির্ভর করতে পারবেন না , যেহেতু লগইনটি একটি হ্যাশ পাসওয়ার্ড দিয়ে তৈরি করা যেতে পারে (সেক্ষেত্রে সরল পাঠ্য পাসওয়ার্ডটি হতে পারে না চেক করা হয়েছে) বা স্থানীয় জটিলতা নীতিটি অক্ষম থাকাকালীন (যা এখনও বাড়ে is_policy_checked = 1
)।
আমি ভাবলাম যে অন্য একটি পদ্ধতির কাজ হবে হ'ল তাদের বর্তমান এবং সাথে প্রতিটি লগইনের একটি অনুলিপি তৈরি করার চেষ্টা করা এবং ব্যর্থ হওয়া প্রত্যেকটির একটি নোট তৈরি করা। তবে এটি কাজ করতে পারে না - এমনকি এটি ইতিমধ্যে হ্যাশ করা পাসওয়ার্ডের কোনও বৈধতাও সম্পাদন করে না। আমি উত্তরাধিকারের কোডটি অন্তর্ভুক্ত করব - তবে, নকশা অনুসারে, নীতিটি কেবল চেক করা যায় না।password_hash
CHECK_POLICY = ON
CHECK_POLICY = ON
SELECT N'BEGIN TRY
CREATE LOGIN ' + QUOTENAME(N'copy_of_' + name)
+ N' WITH PASSWORD = '
+ CONVERT(NVARCHAR(255), password_hash, 1)
+ ' HASHED, CHECK_POLICY = ON;
DROP LOGIN ' + QUOTENAME(N'copy_of_' + name) + ';
END TRY
BEGIN CATCH
IF ERROR_NUMBER() = 15118
PRINT N''' + REPLACE(name, '''', '''''')
+ N' was not complex enough.'';
END CATCH'
FROM sys.sql_logins;
ব্যক্তিগতভাবে, আমি মনে করি এটি একটি বাগ। যদি সিনট্যাক্সটি আমাকে একটি হ্যাশ পাসওয়ার্ড ব্যবহার করে লগইন তৈরি করতে দেয় এবং আমি দৃp়ভাবে বলতে পারি যে সেই পাসওয়ার্ডটি আমার জটিলতা নীতিটি পূরণ করতে পারে, তবে এটি একটি ত্রুটি বা সতর্কতা উত্থাপন করে যে নীতিটি বাস্তবে চেক করা হয়নি।
আপডেট : আমি এই আচরণের বিরুদ্ধে একটি বাগ দায়ের করেছি।