Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao tôi không thể kết nối với phiên bản chia sẻ SQL Server 2012 LocalDB?

CHỈNH SỬA KHÁC

Cory, nếu bạn đã cài đặt các phiên bản SQL Server trước đó (ví dụ:2008), thì đó là phiên bản của sqlcmd bạn đang sử dụng. Để kết nối với LocalDb, bạn cần sử dụng phiên bản SQL Server 2012 của sqlcmd . Vì vậy, hướng dẫn của bạn cho người dùng của bạn phải đảm bảo rằng họ sử dụng phiên bản SQL Server 2012 bằng cách chạy:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd -S "(localdb)\.\InstanceName"

Điều này đã làm việc cho tôi. Điều tôi chưa xác minh là liệu đường dẫn này và phiên bản của sqlcmd khả dụng cho những người dùng có chỉ đã cài đặt sqllocaldb.msi. Xin lỗi nhưng tôi không có bất kỳ máy nào chưa cài đặt SQL Server 2012 (hoặc chỉ cài đặt các phiên bản trước) để thử điều này một cách triệt để. Nhưng vui lòng cho tôi biết nếu gọi rõ ràng phiên bản 110 của sqlcmd thực hiện thủ thuật.

Tôi nghĩ rằng bạn cũng có thể hướng dẫn người dùng thay đổi các biến hệ thống của họ để 110 phiên bản đến trước (IMHO sẽ là trường hợp tự động).

FileTimeToSystemTime đã được xác nhận là một lỗi bởi một trong những đồng nghiệp của Krzysztof. Vì vậy, vẫn không có cách khắc phục nào mà tôi biết đối với những người không phải là chủ sở hữu kết nối qua sqllocaldb . Nhưng tôi đã chỉ ra rằng cả SSMS và sqlcmd có thể được thực hiện để hoạt động, vì vậy tôi hy vọng điều đó giúp bạn tiến gần hơn đến việc chạy.

CHỈNH SỬA

Bạn cần thêm bất kỳ người dùng không phải là chủ sở hữu nào vào phiên bản, ví dụ:CREATE LOGIN [MyDomain\OtherUser] FROM WINDOWS; và bất kỳ quyền thích hợp nào. Trong bài đăng nhập thử nghiệm của tôi không thành công và tạo ra thông báo lỗi sai (thông báo lỗi "FileTimeToSystemTime" là một lỗi). Bạn cũng cần GRANT CONNECT . Khi bạn làm điều này, bạn sẽ có thể kết nối từ người dùng thứ hai bằng Management Studio với kết nối này (kết nối duy nhất tôi đã thử):

(localdb)\.\MySharedInstance

Nhưng từ sqlcmd , Tôi vẫn gặp lỗi cho dù tôi cố gắng kết nối bằng cách nào:

sqlcmd -S "(localdb)\.\MySharedInstance"
sqlcmd -S ".\MySharedInstance"
sqlcmd -S "(localdb)\MySharedInstance"
sqlcmd -S "GREENHORNET\MySharedInstance"
sqlcmd -S ".\LOCALDB#SH04FF8A"
sqlcmd -S "GREENHORNET\LOCALDB#SH04FF8A"

Tất cả lợi nhuận:

Mặc dù tôi đã xác minh rằng phiên bản được thiết lập để chấp nhận các kết nối từ xa. Vì vậy, có một số vòng khác sqlcmd phải trải qua.

Và liên quan đến sqllocaldb exe, làm thế nào để điều này tuân theo bất kỳ logic nào? Tôi có thể thấy trường hợp ở đó thông qua info , Tôi nhận được thông báo lỗi thích hợp khi tôi cố gắng dừng nó, tôi nhận được thông báo rằng nó đã [đã] bắt đầu khi tôi cố gắng khởi động nó, nhưng tôi không thể kết nối với nó?

Vì vậy, trừ khi bạn cần sqlcmd truy cập, trước mắt, tôi sẽ yêu cầu người dùng thứ cấp thực hiện công việc của họ với SSMS (sau khi bạn đã cấp đủ quyền) và hy vọng Krzysztof sẽ có thêm thông tin về các mục khác.

Về bản cập nhật 4.0.2, từ http://connect.microsoft.com/SQLServer/feedback/details/723737/smo-cant-connect-to-localdb-instances :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ghi tên người dùng trong bộ điều khiển api web khi bảng cơ sở dữ liệu lưu trữ người dùng dưới dạng số nguyên

  2. Thứ tự của các cột trong chỉ mục quan trọng như thế nào?

  3. Làm cách nào để lấy các ngày nhóm bản ghi trong khoảng thời gian 3 ngày trong SQL?

  4. Cách loại bỏ hoặc xóa tất cả các trình kích hoạt khỏi cơ sở dữ liệu trong SQL Server

  5. Kết hợp thông tin từ hai tập dữ liệu trong SSRS R2 2008