2013-03-25 24 views
5

tôi đang làm việc trên SQL Server 2008 R2 Express, khi tôi đang sử dụng SQL tính năng máy chủ gỡ lỗi từ máy client, lỗi này xảy ra:Trong lỗi SQL Server 2008 R2 xảy ra trong khi bắt đầu gỡ lỗi, Lỗi HRESULT E_FAIL đã được trả về từ một cuộc gọi đến một thành phần COM. (Mscorlib)

The EXECUTE permission was denied on the object 'sp_enable_sql_debug', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)

tên người dùng của tôi là 'HALI' và cho phép được gán cho tôi là 'công khai' và 'db_Owner',

ngay sau khi lỗi này tôi đã gán tất cả các quyền có sẵn. Và tất cả các vai trò máy chủ.

Bây giờ vào thời điểm này tôi đã thông báo lỗi mới,

Error HRESULT E_FAIL has been returned from a call to a COM component. (mscorlib)

Bây giờ những gì các giải pháp sẽ được cho lỗi này.

Trả lời

5

Tôi không chắc chắn nếu vô hiệu hóa tường lửa là đủ. nếu người dùng có quyền sysadmin và vẫn nhận được lỗi này có nghĩa là khách hàng không thể kết nối với máy chủ trong chế độ gỡ lỗi. kiểm tra cổng TCP và UDP này được mở một cách chính xác.

SQL remote debugging configuration

EDIT: 1

tôi chắc chắn bạn cũng phải đã mang kiến ​​rất nhiều và cố gắng để tìm hiểu về các thông báo lỗi. Những gì tôi đã tìm thấy cho đến nay là Lỗi trong OP bạn đã đề cập là gây hiểu nhầm và từ lỗi đó, chúng tôi không thể nói chính xác những gì là sai hoặc những gì để xem tiếp theo. Nhưng khi bạn trả lời trong các bình luận, sau khi thực hiện các thay đổi để kích hoạt Remote Debugger; lỗi được đề cập rõ ràng hơn và tôi cảm thấy rằng sự cho phép thích hợp vẫn là một vấn đề. Rất nhiều gợi ý khác mà bạn cũng có thể đã thử cho đến nay, nhưng nếu bạn chưa thực hiện việc này, hãy thử thêm một lần nữa:

Trong một trong các nhận xét tôi đã đề cập bạn thử đăng nhập bằng người dùng cửa sổ.

Bây giờ Giữ các cài đặt bạn đã làm cho các cổng TCP, ngoại lệ tường lửa vv… được giải thích trong liên kết ở trên. bạn có máy chủ Windows 2012 nơi bạn đã cài đặt máy chủ DB. và Windows 8 Prof nơi bạn có DB client và bạn kết nối thông qua SSMS. Bây giờ tôi tin rằng cả hai máy đều nằm trong cùng một miền. Giả sử miền XYZ. Bạn phải có cửa sổ đăng nhập trên máy chủ, giả sử nó là “XYZ \ HALI” sử dụng mà bạn có thể đăng nhập vào Windows Server. đăng nhập và đảm bảo rằng đăng nhập cũng tồn tại trong SQL SERVER với quyền sysadmin. Vì máy khách cũng nằm trong cùng một miền, hãy đảm bảo bạn đã đăng nhập vào máy khách bằng cùng một người dùng “XYZ \ HALI”. Bây giờ bắt đầu SSMS và chọn xác thực cửa sổ thay vì xác thực SQL SERVER. Hãy thử bắt đầu Gỡ lỗi mã T-SQL ngay bây giờ.

nếu máy khách và máy chủ không nằm trong cùng một miền thì chúng tôi phải đăng ký tên máy chủ trên máy khách như Máy chủ được liên kết, mạo danh người dùng/đăng nhập dưới dạng địa phương rồi thử gỡ lỗi.

Chỉnh sửa: 2

Login to SSMS using Windows Authentication

+0

sau khi thực hiện tất cả các lỗi được đề cập trong blog, cả hai bên, máy chủ và máy khách, khi tôi cố gắng gỡ lỗi trên clinet lỗi này xảy ra, trước khi thực hiện ngoại lệ tường lửa tôi đã nhận được lỗi khác nhau, bây giờ tôi nhận được lỗi này - . . Không thể khởi động trình gỡ lỗi Transact-SQL, không thể kết nối với cá thể Cơ sở dữ liệu 'xxxx'. Đảm bảo bạn đã bật ngoại lệ tường lửa gỡ lỗi và đang sử dụng thông tin đăng nhập là thành viên của vai trò máy chủ cố định sysadmin. Nhấp vào Trợ giúp để biết thêm thông tin. –

+0

hệ điều hành nào trên máy chủ và ứng dụng khách. cũng khi bạn kết nối với SSMS trên máy khách, bạn sử dụng "servername \ instancename" chứ không phải địa chỉ IP. bạn cũng sử dụng "người dùng xác thực cửa sổ" tồn tại trên cả hai máy. –

+0

có trên client i m kết nối với tên máy chủ, và tôi đang sử dụng xác thực sql, tôi nên sử dụng địa chỉ ip –

1

Một vài lần tôi đã chạy qua lỗi đó, nó luôn luôn liên quan đến tường lửa. Bạn đang làm việc trên máy chủ từ xa hay máy cục bộ của mình? (Thứ hai, hãy cẩn thận chỉ định tất cả các vai trò có thể. Một số trong số đó là những thứ bạn hoàn toàn không muốn. Một trong số đó bạn cần để gỡ lỗi SQL là sysadmin - hãy thử tắt phần còn lại của vai trò mà bạn đã chọn và chỉ định vai trò đó.)

Gỡ lỗi procs luôn là một nỗi đau. This ASP.NET post đã giúp tôi một thời gian ngắn trước đây.

+0

tôi đã tắt tường lửa trên cả máy chủ và máy khách. –

+0

Bạn có thử bỏ chọn tất cả các vai trò nhưng sysadmin cho người dùng đang gỡ lỗi không? – antinescience

+0

yeh! nhưng cùng một lỗi xảy ra. –

2

tôi gặp phải vấn đề này sau khi tạo ra một kịch bản SQL 2012 và chạy kịch bản trong một cơ sở dữ liệu SQL 2008 R2.

Sau một số nghiên cứu, tôi phát hiện ra rằng mục tiêu của tôi SQL 2008 R2 đang chạy trên hệ điều hành 32 bit hỗ trợ tệp có kích thước tối đa 2GB. Vì vậy, tôi đã lưu các kịch bản trong C như C: \ myScript.sql thực hiện các tập tin trong cửa sổ lệnh và tôi đã thành công sau khi làm theo các bước dưới đây:

Để chạy các tập tin kịch bản:

  1. Mở một dấu nhắc lệnh cửa sổ.

  2. Trong cửa sổ Command Prompt, gõ: sqlcmd -S myserver \ instanceName -U yourusername -P yourpassword -i C: \ myScript.sql đâu myserver \ instanceName là Tên Ví dụ, cung cấp tên người dùng & mật khẩu cho SQL đăng nhập máy chủ và cuối cùng là đường dẫn của tệp như được chỉ ra

  3. Nhấn ENTER.

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