2012-08-15 30 views

Trả lời

12

Đây là những gì Management Studio thực hiện để thay đổi chế độ xác thực từ hỗn hợp để chỉ dành cho Windows:

EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    1; 

Và từ Windows chỉ trở lại hỗn hợp:

EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE', 
    N'Software\Microsoft\MSSQLServer\MSSQLServer', 
    N'LoginMode', 
    REG_DWORD, 
    2; -- only difference is right here 

Bạn có thể gọi các lệnh tương tự từ các nguồn khác nhau có thể kết nối với SQL Server như SQLCMD, PowerShell, VBScript, C#, v.v. Hoặc bạn có thể đăng nhập trực tiếp vào máy chủ, điều hướng đến khóa đăng ký đó và thay đổi giá trị theo cách thủ công (như @marc_s được đề xuất).

Lưu ý rằng trong mọi trường hợp, bạn phải khởi động lại SQL Server để các thay đổi có hiệu lực. Bạn có thể xem nhiều mục nhập đầu tiên trong nhật ký lỗi mới khi khởi động lại để xác thực rằng chế độ xác thực là chính xác. Nó sẽ nói (cho hỗn hợp):

date/time Server Authentication Mode is MIXED. 
+0

Lưu ý: đối với một trường hợp được đặt tên, này giá trị được đặt tại 'HKLM \ Software \ Microsoft \ Microsoft SQL Server \ {Instance Name} \ MSSQLServer \ LoginMode'. – Mitch

+2

@Mitch đó là sự thật nếu bạn đang đào sâu trong registry. Tuy nhiên, khi sử dụng 'xp_instance_regwrite', toàn bộ điểm của nó là nó sẽ dịch' ... \ MSSQLServer \ MSSQLServer \ ... 'thành nhánh cụ thể của cá thể của bạn, ví dụ: '... \ Microsoft SQL Server \ {Instance Name} \ MSSQLServer \ ...' - nếu bạn có trường hợp không hoạt động, vui lòng giải thích. –

+0

Hmm. Tôi đã không nhận ra rằng 'xp_instance_regwrite' sẽ sửa chữa đường dẫn. Cảm ơn bạn. – Mitch

Các vấn đề liên quan