2009-05-13 32 views
15

Tôi vừa cài đặt phiên bản SQL Server 2008 Developer và tôi đang cố gắng kết nối bằng SQLCMD.exe, nhưng tôi gặp lỗi sau:SQL Server 2008 - Đăng nhập thất bại. Đăng nhập từ một miền không đáng tin cậy và không thể được sử dụng với xác thực Windows

H:\>sqlcmd.exe -S ".\SQL2008" 

Msg 18452, Level 14, State 1, Server DEVBOX\SQL2008, Line 1 

Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. 

Phiên bản SQL Server được cấu hình để sử dụng chế độ SQL Server và Windows Authentication. Nếu tôi chỉ định -U thì tôi có thể đăng nhập thành công, nhưng tôi muốn sử dụng xác thực cửa sổ. Kết nối bằng cách sử dụng SSMS với xác thực cửa sổ có vẻ hoạt động tốt.

Trả lời

6

Tôi có vấn đề này và đó là vì máy chạy isnt ứng dụng đáng tin cậy cho đoàn trên miền của Active Directory. Nếu nó là một ứng dụng .net chạy dưới một bản sắc hồ bơi ứng dụng DOMAIN_application.environment ví dụ .. danh tính không thể thực hiện cuộc gọi đến SQL trừ khi máy được tin cậy.

+0

Tôi không có thời gian để kiểm tra điều này nhưng điều này có vẻ là nguyên nhân có khả năng nhất. –

+46

cách khắc phục sự cố này? –

+0

Đây có thể là một giải pháp tương tự: http://stackoverflow.com/a/11248883/62072 –

5

Bạn đang không đi qua bất kỳ thông tin để sqlcmd.exe

Vì vậy, nó đang cố gắng để xác thực bạn sử dụng thông tin của Windows đăng nhập, nhưng bạn không phải cài đặt SQL Server của bạn để chấp nhận những thông tin quan trọng ...

Khi bạn đã cài đặt nó, bạn sẽ phải cung cấp một mật khẩu server Admin (đối với tài khoản sa)

Hãy thử ...

sqlcmd.exe -U sa -P YOUR_PASSWORD -S ".\SQL2008" 

để tham khảo, có thêm chi tiết here ...

+0

Phiên bản SQL Server được định cấu hình để sử dụng chế độ Xác thực máy chủ SQL và Windows. Nếu tôi chỉ định -U sa thì tôi có thể đăng nhập thành công, nhưng tôi muốn sử dụng xác thực cửa sổ. Kết nối bằng SSMS với xác thực cửa sổ có vẻ hoạt động tốt .. –

0

Bạn có chỉ định tên người dùng và mật khẩu để đăng nhập không? Chính xác thì dòng lệnh hoàn chỉnh của bạn là gì?

Nếu bạn đang chạy trên hộp của riêng mình, bạn có thể chỉ định tên người dùng/mật khẩu hoặc sử dụng tham số -E để đăng nhập bằng thông tin đăng nhập Windows của bạn (nếu được phép trong cài đặt máy chủ SQL của bạn).

Marc

+0

Dòng lệnh hoàn chỉnh được đăng trong câu hỏi, không có gì khác. -E dường như không tạo ra bất kỳ sự khác biệt nào, cùng một lỗi được ném ra. –

+0

Người dùng hiện tại của bạn mà bạn đang chạy trên DEVBOX của bạn đã được thêm vào SQL Server như là một "đăng nhập"? –

+0

Đúng, tài khoản Windows AD đã được thêm làm đăng nhập máy chủ với tất cả vai trò máy chủ. –

1

Lỗi của bạn hoàn toàn nghĩa là "bạn đang cố gắng sử dụng Xác thực Windows, nhưng đăng nhập của bạn không phải từ một miền đáng tin cậy". Đó là lẻ, bởi vì bạn đang kết nối với máy địa phương.

Có thể bạn đã đăng nhập vào Windows bằng tài khoản cục bộ thay vì tài khoản miền? Đảm bảo rằng bạn đang đăng nhập bằng một tài khoản miền cũng là một máy chủ SQL Server trên phiên bản SQL2008 của bạn.

+0

Tôi đã đăng nhập vào các cửa sổ bằng tài khoản miền cũng là máy chủ chính trên phiên bản 2008. –

2

Chỉ cần cố gắng này:

H:> "C: \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Binn \ sqlcmd.exe" -S 1>

" \ SQL2008" . và nó hoạt động .. (Tôi có thư mục Microsoft SQL Server \ 100 \ Tools \ Binn trong đường dẫn của tôi).

Vẫn không chắc chắn lý do tại sao phiên bản SQL Server 2008 của SQLCMD không hoạt động mặc dù ..

3

Trong trường hợp của tôi, lỗi này là do đổi tên máy khách của tôi. Tôi đã sử dụng một tên mới dài hơn 13 ký tự (bất chấp cảnh báo), dẫn đến tên NETBIOS bị cắt ngắn và khác với tên máy đầy đủ. Sau khi tôi đổi tên khách hàng thành tên ngắn hơn, lỗi đã biến mất.

0

Tôi cũng nhận được lỗi này, mặc dù vấn đề của tôi là tôi tiếp tục chuyển đổi giữa hai mạng công ty thông qua Máy ảo của tôi, với các thông tin đăng nhập khác nhau. Tôi phải chạy lời nhắc lệnh:

ipconfig /renew 

Sau khi sự cố mạng của tôi được giải quyết và tôi có thể kết nối lại với SQL.

0

Chỉ cần tìm thấy chủ đề này và được đăng một câu trả lời khác (sao chép dưới đây) ở đây: https://stackoverflow.com/a/37853766/1948625

Cụ thể về vấn đề này, nếu chấm "." được sử dụng trong các giá trị -S của dòng lệnh có nghĩa là giống như 127.0.0.1 , sau đó nó có thể là vấn đề tương tự như chuỗi kết nối của câu hỏi khác. Sử dụng tên máy chủ thay thế hoặc kiểm tra tệp máy chủ của bạn.


Câu hỏi cũ, và các triệu chứng của tôi hơi khác, nhưng cùng một lỗi. Chuỗi kết nối của tôi là chính xác (Bảo mật tích hợp và tôi không cung cấp người dùng và pwd) với data source được đặt thành 127.0.0.1. Nó hoạt động tốt trong nhiều năm.

Nhưng gần đây tôi đã thêm một dòng trong file host tĩnh cho mục đích thử nghiệm (C:\Windows\System32\drivers\etc\hosts)

127.0.0.1   www.blablatestsite.com 

Loại bỏ dòng này và các lỗi đã biến mất.

Tôi có một đầu mối từ bài viết này (https://support.microsoft.com/en-gb/kb/896861) nói về tên máy chủ và vòng lặp.

Sửa lỗi khác có thể (nếu bạn cần giữ dòng đó trong tệp máy chủ) là sử dụng tên máy chủ (như MYSERVER01) thay vì 127.0.0.1 trong chuỗi kết nối data source.

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