Tôi không thể đăng nhập vào SQL Server 2008 bằng xác thực SQL Server.
Tôi chỉ có thể đăng nhập bằng Chế độ xác thực Windows.
Tôi chỉ chọn mặc định trong khi cài đặt SQL Server 2008 R2.
Tôi không thể đăng nhập vào SQL Server 2008 bằng xác thực SQL Server.
Tôi chỉ có thể đăng nhập bằng Chế độ xác thực Windows.
Tôi chỉ chọn mặc định trong khi cài đặt SQL Server 2008 R2.
Câu trả lời:
Bạn đã tìm ở bất cứ đâu? Bấm chuột phải vào máy chủ và chọn Thuộc tính, sau đó chọn màn hình Bảo mật.
Sau đó, đăng nhập bằng tài khoản quản trị Windows auth của bạn và đặt mật khẩu cho sa
tài khoản auth SQL.
ALTER LOGIN sa WITH PASSWORD = 'strong password here';
Máy chủ của bạn có thể đã được cấu hình để chỉ chạy trong chế độ Xác thực Windows . Điều này có thể được kiểm tra bằng cách mở Thuộc tính của phiên bản SQL Server của bạn trong SQL Server Management Studio và xem phần Bảo mật :
Hoặc bạn có thể chạy câu lệnh SQL Server sau đây sau khi đăng nhập bằng Tài khoản Windows:
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
Nếu giá trị được trả về LoginMode 2
thì SQL Server và chế độ Xác thực Windows đã được kích hoạt. (Xem Bước 2. để biết chi tiết về cách thay đổi điều này.)
Nếu giá trị trả về là LoginMode 1
sau đó chế độ Windows Authentication đã được kích hoạt. (Xem Bước 1. để biết thêm chi tiết về cách thay đổi cài đặt này) Không thể đăng nhập bằng thông tin đăng nhập SQL Server thuần túy.
Nếu phiên bản của bạn đã được cấu hình để chỉ sử dụng chế độ Xác thực Windows thì bạn sẽ phải bật chế độ SQL Server và Windows xác thực và khởi động lại máy chủ của mình. Thực hiện theo các bước đơn giản sau:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO
Thay đổi cài đặt trong phần bảo mật của cửa sổ thuộc tính sang chế độ SQL Server và Windows xác thực .
(có thể đạt được thông qua SQL Script trong Chế độ SQLCMD )
-- Connect to your instance
-- (Replace <instancename> with your instance's name
:connect <instancename>
-- Stop your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net stop SQLSERVERAGENT
-- (Replace MSSQLServer with the name of your service)
!! net stop MSSQLServer
-- Start your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start MSSQLServer
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start SQLSERVERAGENT
:connect localhost
Nhấp chuột phải vào phiên bản SQL Server của bạn và chọn Khởi động lại từ menu ngữ cảnh:
Xác minh rằng phiên bản của bạn đang chạy trong chế độ SQL Server và Windows xác thực bằng cách ban hành lệnh sau:
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
Bạn sẽ nhận được một LoginMode 2
.
Xác minh rằng nút radio được chọn cho chế độ SQL Server và Windows xác thực .
Nếu tài khoản sa của bạn đã bị vô hiệu hóa, vui lòng làm theo Bước 2 .. Nếu không thì bạn đã hoàn thành.
Trong trường hợp tài khoản sa bị vô hiệu hóa , chỉ cần tiếp tục và bật lại tài khoản SQL Server. Điều này có thể đạt được với kịch bản sau đây:
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO
... Hoặc thông qua SSMS.
Đôi khi đăng nhập bị vô hiệu hóa do nhiều mật khẩu không chính xác hoặc bất kỳ vi phạm chính sách. Vì vậy, những gì chúng ta có thể làm chỉ là đăng nhập bằng xác thực cửa sổ, thay đổi mật khẩu và cho phép đăng nhập lại.
Đăng nhập vào cơ sở dữ liệu bằng Windows xác thực
Chạy truy vấn:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
Việc sử dụng CHECK_POLICY là bắt buộc vì nó chỉ định rằng các chính sách mật khẩu Windows của máy tính mà SQL Server đang chạy nên được thi hành trong lần đăng nhập này. Mặc định là BẬT khi chúng tôi TẮT, nó sẽ thay đổi mật khẩu mà không gặp bất kỳ khó khăn nào. Sau này bạn có thể BẬT
LƯU Ý: Những gì tôi đã quan sát thấy khi CHECK_POLICY có trên các giải pháp GUI SSME để thay đổi mật khẩu sẽ không hoạt động mỗi lần. Tôi không lý do đằng sau nhưng tôi đã quan sát.