مرور سریع نکات SQL Server
چند اسکریپت و تنظیم پرکاربرد SQL Server: پاکسازی کامل دیتابیس، رمزنگاری/هش و فعالسازی SQL Authentication.
اسکریپتها و تنظیماتی که معمولاً هنگام کار با SQL Server Management Studio یا در محیط توسعه به آنها نیاز پیدا میکنید.
پاکسازی دیتابیس0/1
حذف همهٔ جدولهای یک دیتابیس با یک اسکریپت داینامیک.
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';
EXEC sp_executesql @sql;
این اسکریپت فارینکیها را در نظر نمیگیرد؛ اگر جدولها به هم رفرنس دارند ممکن است لازم باشد چند بار اجرا شود یا ابتدا Constraint ها Drop شوند.
هرگز این اسکریپت را روی دیتابیس Production اجرا نکنید — بدون Backup غیرقابلبازگشت است.
رمزنگاری و هش0/2
توابع رمزنگاری متقارن و هش داخلی SQL Server.
DECLARE @EncryptedString AS VARBINARY(MAX);
SET @EncryptedString = (SELECT ENCRYPTBYPASSPHRASE('MMF2022','1'));
SELECT @EncryptedString AS 'Encrypted String';
SELECT CONVERT(VARCHAR(150), DECRYPTBYPASSPHRASE('MMF2022', @EncryptedString)) AS 'Decrypted String';
این روش برای رمزنگاری واقعی دادههای حساس در Production مناسب نیست؛ برای آن باید از Always Encrypted یا رمزنگاری در لایهٔ اپلیکیشن استفاده کرد.
SELECT CONVERT(NVARCHAR(32), HashBytes('MD5', 'email@dot.com'), 2)
MD5 دیگر برای مقاصد امنیتی (مثل هش رمز عبور) مناسب نیست؛ از SHA2_256 یا الگوریتمهای اختصاصی هش رمز عبور (bcrypt/argon2 در لایهٔ اپلیکیشن) استفاده کنید.
فعالسازی SQL Server Authentication0/2
تنظیمات لازم برای فعال کردن کاربر sa و ورود با یوزرنیم/پسورد بهجای فقط Windows Authentication.
بدون فعالکردن Mixed Mode، حتی با پسورد درست sa، خطای Login failed میگیرید.
