Không thể đăng nhập bằng SA với Xác thực SQL


9

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.



3
"Chỉ xác thực Windows" là cơ chế bảo mật mặc định được chỉ định trong khi thiết lập.
Max Vernon

Câu trả lời:


13

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.

nhập mô tả hình ảnh ở đây

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 satài khoản auth SQL.

ALTER LOGIN sa WITH PASSWORD = 'strong password here';

cảm ơn bạn tôi đã chọn tùy chọn này và khi tôi đã đăng nhập vào chế độ xác thực sql. Tôi nhập sa vào đăng nhập và để trống mật khẩu vì tôi không cung cấp bất kỳ mật khẩu nào trong khi cài đặt
khan

Bạn cần đặt mật khẩu cho tài khoản sa khi đăng nhập bằng xác thực Windows. Không có thứ gọi là mật khẩu sa trống trong SQL Server nữa.
Aaron Bertrand

3

Chế độ xác thực nào?

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 :

Thuộc tính bảo mật SSMS

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 2thì 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 1sau đó 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.


Bước 1. - Thay đổi chế độ xác thực

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:

1. Thay đổi chế độ xác thực

Tập lệnh SQL

USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO

Xưởng quản lý máy chủ SQL (SSMS)

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 .

Thuộc tính bảo mật SSMS - Chế độ xác thực máy chủ SQL và Windows

2. Khởi động lại SQL Server Instance

Tập lệnh SQL

(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

Xưởng quản lý máy chủ SQL (SSMS)

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:

SSMS Instance Khởi động lại thông qua menu ngữ cảnh

3. Xác minh cài đặt

Tập lệnh SQL

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ưởng quản lý máy chủ SQL (SSMS)

Xác minh rằng nút radio được chọn cho chế độ SQL Server và Windows xác thực .

Thuộc tính bảo mật SSMS - Chế độ xác thực máy chủ SQL và Windows

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.


Bước 2. Kích hoạt tài khoản sa

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.


-1

Đô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.


Jay tốt. Bây giờ, vui lòng chỉnh sửa câu trả lời của bạn (ở bên trái, đối diện với hình ảnh của bạn) và bao gồm thông tin bổ sung này. Sau đó, bạn có thể xóa nhận xét của mình (di chuột qua nhận xét, một chữ thập trong vòng tròn xuất hiện), vì tôi sẽ xóa bình luận của tôi.
Michael Green
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.