Không thể kết nối với SQL Server bằng tài khoản 'sa', tôi đang thiếu gì?


19

Tôi đang cố gắng đăng nhập vào phiên bản SQL Server 2005 Express bằng lệnh sau:

osql -S .\INSTANCE -U sa -P password

Tôi gặp lỗi: Đăng nhập thất bại cho người dùng 'sa'.

Tôi có thể kết nối tốt bằng cách sử dụng công tắc -E. Tôi phải thêm rằng nó đã hoạt động trong nhiều tháng. Tôi nghĩ ai đó đã thay đổi một cái gì đó nhưng tôi không thể tìm ra nó là gì.

Đây là những gì tôi đã cố gắng:

  • Đăng nhập bằng xác thực Windows và thay đổi mật khẩu sa:

    sp_password NULL, mật khẩu mới, 'sa'

  • Kích hoạt đăng nhập 'sa':

    THAY ĐỔI ĐĂNG NHẬP SAU; ĐI THAY ĐỔI ĐĂNG NHẬP VỚI PASSWORD = 'newpassword'; ĐI

  • Đã kiểm tra Windows Registry để đảm bảo rằng xác thực hỗn hợp được bật. Giá trị đã đúng: LoginMode = 2

Những gì khác tôi nên kiểm tra? Cảm ơn trước.

THÔNG TIN BỔ SUNG:

Đây là một máy chủ Windows 2003. Họ có một số chính sách mật khẩu được bật, tôi nhớ rằng tôi cần thay đổi mật khẩu 'sa' mặc định mà ứng dụng của tôi sử dụng khi cài đặt SQL Server sang một mật khẩu khác phức tạp hơn.

Tôi đang kết nối bằng VNC, vì vậy tôi thực sự không thể sử dụng SSMS

Ứng dụng của tôi có thể kết nối bằng thông tin đăng nhập SQL Server khác, nhưng không có 'sa'

Cuối cùng, nếu chúng tôi không tìm thấy giải pháp, tôi sẽ xóa trường hợp này và cài đặt lại, nhưng tôi thực sự muốn tìm hiểu vấn đề là gì. Chỉ trong trường hợp nó xảy ra một lần nữa và chỉ vì tò mò.

Câu trả lời:


22

Giống như @SpaceManSpiff đã nói, đừng quên kiểm tra xem chế độ Hỗn hợp có được bật hay không. Ai đó đã thay đổi cài đặt đó cho tôi và tôi có cùng một vấn đề. Đây là cách giải quyết nó:

  1. Đăng nhập vào MSSQL Server Management Studio với Windows xác thực.
  2. Trong SQL Server Management Studio Object Explorer, bấm chuột phải vào máy chủ, rồi bấm Thuộc tính.
  3. Trong Thuộc tính Máy chủ, chọn một trang "Bảo mật".
  4. Chọn xác thực Máy chủ là "Chế độ xác thực máy chủ SQL và Windows" và nhấp vào Ok. Thuộc tính cơ sở dữ liệu quản lý máy chủ MSSQL
  5. Khởi động lại Dịch vụ SQL và sau đó thử đăng nhập với chi tiết 'sa'.

Nguồn: http://forums.eukhost.com/f15/login-fails-user-sa-microsoft-sql-server-error-18456-a-12544/


12

Ok, tôi đã có thể tìm ra những gì đang xảy ra (loại) và có một cách giải quyết.

Có vẻ như một tuần trước họ đã chơi với chính sách Windows Security. Họ đã thêm / xóa quyền nhưng họ không thể cho tôi chính xác những gì họ đã làm vì họ thực sự không biết (ouch!).

Dù sao, tôi đã kết nối bằng xác thực Windows (-E switch) và chạy truy vấn sau:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

Chìa khóa ở đây là CHECK_POLICY = OFF . Điều đó đã tạo nên mánh khóe. Tôi hy vọng điều này sẽ làm cho 'sa' miễn nhiễm với những thay đổi trong tương lai trong thiết lập tên miền của họ.

Cảm ơn tất cả đề xuất của bạn.


6

Những điều cần kiểm tra

Mật khẩu trên tài khoản SA

Chế độ hỗn hợp được kích hoạt

Tài khoản SA có bị vô hiệu hóa không?

Tạo một tài khoản SQL khác và thử nó (vì bạn có thể đăng nhập bằng -E bạn có thể làm điều này)

Kiểm tra bằng kết nối ODBC, bạn có thể tạo kết nối này để xem SA có hoạt động không

Ồ và luôn luôn bắt tất cả trong windows, khởi động lại (nghiêm túc, điều này giúp máy chủ SQL thử nghiệm của tôi sau khi tôi đã hoàn thành công việc với nó)


1

Tôi đã gặp vấn đề đó vài năm trước sau khi cài đặt Windows ServicePack (không có SQLServer Update, nhưng Windows), SQLServer đã từ chối các kết nối, cho đến khi SQLServer ServicePack cũng được cài đặt! Tôi tìm thấy một tin nhắn trong eventlog sau vài giờ.

Tôi nghĩ rằng họ đã làm điều này, bởi vì họ biết có một lỗ hổng bảo mật lớn và muốn buộc tất cả quản trị viên phải cài đặt gói. Tuy nhiên, vì cách đây một thời gian, tôi không có phiên bản chính xác, v.v. Tôi muốn giới thiệu, bạn hãy kiểm tra lại nhật ký sự kiện và cài đặt tất cả / gói dịch vụ mới nhất.


Điều này có vẻ đầy hứa hẹn, tôi sẽ thử nó vào thứ Hai và báo cáo lại. Cám ơn vì sự gợi ý.
JAG

Cuối cùng tôi đã không cố gắng cài đặt Gói dịch vụ mới nhất. Xem 'câu trả lời được chấp nhận' của riêng tôi.
JAG

0

Giả sử bạn đã cài đặt Management Studio hoặc Management Studio Express, bạn có thể kết nối Studio quản lý với cá thể bằng sa không?

JR


1
SSMS chưa được cài đặt và tôi không muốn cài đặt nó nếu có thể. Ngoài ra, kết nối từ một máy tính khác với SSMS không phải là một tùy chọn vì đây là máy chủ của khách hàng. Chỉ có các công cụ dòng lệnh có sẵn.
JAG

Nếu bạn có Studio quản lý trên một PC khác, ngay cả khi ở cuối VPN, bạn vẫn có thể kết nối. Vấn đề là kiểm tra xem có vấn đề gì với thiết lập máy chủ hay không, hay vấn đề nằm ở lệnh osql.
John Rennie

0

Bạn có chắc chắn rằng bạn đã khởi động lại dịch vụ SQL Server sau khi bạn thực hiện thay đổi sổ đăng ký không?


Không cần thay đổi vì nó có giá trị chính xác.
JAG

0

Có ai đó xóa cơ sở dữ liệu là cơ sở dữ liệu mặc định cho "sa"?

Nếu đó là vấn đề, hãy thử

EXEC sp_defaultdb 'sa', 'New default database'

Về lý thuyết, chỉ có một cơ sở dữ liệu và nó tồn tại. Tôi đã không chạy lệnh đó mặc dù.
JAG

Thông thường đó là 'chủ nhân'. Nhưng tôi nghĩ đó không phải là vấn đề ...
splattne

Tôi vừa thử nó nhưng không có gì khác biệt. Dù sao cũng cảm ơn bạn.
JAG

0

Nếu bạn đang cài đặt SQL Express 2014, bạn sẽ phải thực hiện một số điều để khắc phục lỗi này nếu bạn thử đăng nhập bằng tài khoản [sa].

  1. Tài khoản "sa" sẽ bị vô hiệu hóa. Vì vậy, bạn sẽ cần chuyển tài khoản từ bị vô hiệu hóa sang được bật trong phần trạng thái của tài khoản.

  2. Máy chủ phải kích hoạt xác thực máy chủ windows và sql. Theo mặc định, chỉ có xác thực windows được kích hoạt.

  3. Đặt lại mật khẩu. (xem mã bên dưới; ServerFault có một lỗi trong đó mã không hiển thị giống nhau khi sử dụng danh sách được đặt hàng kể từ ngày 6/8/2016)

  4. Khởi động lại dịch vụ Windows cho SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

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


0

tôi đã giải quyết nó như sau đăng nhập với các thuộc tính goto xác thực windows của máy chủ >> Bảo mật và thay đổi xác thực máy chủ


1
Bạn có thể vui lòng chi tiêu nhiều hơn với định dạng (và hoàn thành) câu trả lời của bạn? Vì điều này được viết, không có nhiều sự giúp đỡ.
asdmin
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.