it-swarm-vi.tech

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

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; Đ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 kích hoạ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ò.

20
JAG

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 Bảo mật của Windows. 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.

12
JAG

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. MSSQL Server Management Database properties
  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/

24
emmanuel

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

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

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 liệu 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ó)

6
SpaceManSpiff

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.

1
Tim Büthe

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;
1
MacGyver

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ủ

0
Preet Inder Singh

Đô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
jay patel

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

0
John Rennie

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?

0
David Spillett

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'
0
splattne