2013-03-25 12 views
5

sto lavorando su SQL Server 2008 R2 Express, quando sto utilizzando la funzione di debug di SQL Server dal PC client, questo errore si verifica:In SQL Server 2008 R2 si è verificato un errore durante l'avvio del debug, Errore HRESULT E_FAIL è stato restituito da una chiamata a un componente COM. (Mscorlib)

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

Il mio nome utente è 'Hali' e il permesso è assegnato a me è "public" e "db_Owner",

ora dopo questo errore ho assegnato tutte le autorizzazioni disponibili. E tutti i ruoli del server.

Ora in questo momento ho ricevuto nuovo messaggio di errore,

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

Ora quello che la soluzione sarebbe per questo errore.

risposta

5

Non sono sicuro se la disattivazione del firewall sia sufficiente. se l'utente ha le autorizzazioni sysadmin e continua a ricevere questo errore significa che il client non è in grado di connettersi al server in modalità di debug. controllare che le porte TCP e UDP siano aperte correttamente.

SQL remote debugging configuration

EDIT: 1

Sono sicuro che è necessario avere anche stralunate molto e cercato di scoprire i messaggi di errore. Quello che ho trovato finora è l'errore nell'OP che hai citato è fuorviante e da quell'errore non possiamo dire cosa è esattamente sbagliato o cosa guardare dopo. Ma come hai risposto nei commenti, dopo aver apportato le modifiche per abilitare Remote Debugger; l'errore citato è più chiaro e ritengo che il permesso appropriato sia ancora un problema. Un sacco di altri suggerimento che potrebbe anche aver provato finora, ma se non avete fatto questo permette di provare ancora una volta:

In uno dei commenti che ho citato per provare login utilizzando l'utente di Windows.

Ora Mantieni le impostazioni che hai già fatto per le porte TCP, Firewall Eccezione ecc ... spiegato nel link sopra. si dispone di Windows 2012 server in cui è installato il server DB. e Windows 8 Prof dove si ha il client DB e ci si connette tramite SSMS. Ora credo che entrambe le macchine siano nello stesso dominio. Diciamo dominio XYZ. È necessario avere il login di Windows sul server, diciamo che è "XYZ \ HALI" con cui è possibile accedere a Windows Server. accedere e assicurarsi che il login sia presente anche in SQL SERVER con autorizzazione sysadmin. Poiché la macchina client si trova nello stesso dominio, assicurati di aver effettuato l'accesso al computer client utilizzando lo stesso utente "XYZ \ HALI". Ora avvia SSMS e scegli l'autenticazione di Windows invece dell'autenticazione SQL SERVER. Prova ad avviare il debug di codice T-SQL ora.

Se le macchine client e server non sono nello stesso dominio, è necessario registrare il nome del server sul computer client come server collegato, impersonare l'accesso/utente come locale e quindi provare il debug.

Edit: 2

Login to SSMS using Windows Authentication

+0

dopo aver fatto tutti gli struff menzionati nel blog, entrambi i lati, server e client, quando ho provato a eseguire il debug su clinet questo errore si è verificato, prima di fare eccezione del firewall ho riscontrato un errore diverso, ora sto ricevendo questo errore - . . Impossibile avviare il debugger Transact-SQL, impossibile connettersi all'istanza 'xxxx' del Motore di database. Assicurarsi di aver abilitato le eccezioni del firewall di debug e di utilizzare un account di accesso membro del ruolo predefinito del server sysadmin. Fai clic su Guida per ulteriori informazioni. –

+0

quale sistema operativo è su server e client. anche quando ci si connette a SSMS sul client si utilizza "nomeserver \ instancename" non l'indirizzo IP corretto. anche tu usando "utente di autenticazione di Windows" che esiste su entrambe le macchine. –

+0

sì sul client mi sto connettendo con il nome del server, e sto usando l'autenticazione sql, dovrei usare l'indirizzo IP –

1

Le volte in cui ho riscontrato questo errore, è sempre stato correlato al firewall. Stai lavorando su un server remoto o sul tuo computer locale? (Parentalmente, fai attenzione ad assegnare tutti i possibili ruoli, alcuni di loro sono quelli che non vuoi assolutamente: quello di cui hai bisogno per il debug SQL è sysadmin: prova a disabilitare il resto dei ruoli che hai spuntato e assegnando solo quello.)

Il debug dei proc è sempre un problema. This ASP.NET post mi ha aiutato molto tempo fa.

+0

ho disabilitato il firewall sia sul server che sul computer client. –

+0

Hai provato a deselezionare tutti i ruoli, ma sysadmin per l'utente che esegue il debug? – antinescience

+0

yeh! ma si verifica lo stesso errore. –

2

ho riscontrato questo problema dopo la generazione di uno script SQL 2012 e l'esecuzione dello script in un database SQL 2008 R2.

Dopo alcune ricerche, ho scoperto che il mio obiettivo SQL 2008 R2 era in esecuzione su un sistema operativo a 32 bit che supporta un file con dimensioni massime di 2 GB. Così ho salvato lo script in C come C: \ MyScript.sql eseguito il file nella finestra di comando e sono riuscito dopo aver seguito questi pochi passi:

per eseguire il file di script:

  1. Aprire un prompt dei comandi finestra.

  2. Nella finestra Prompt dei comandi, digitare: sqlcmd -S myServer \ instanceName -U yourUserName -P VOSTRAPASSWORD -i C: \ MyScript.sql Dove myServer \ InstanceName è il nome dell'istanza, forniscono il nome utente & password per SQL accesso al server e infine il percorso del file come indicato

  3. Premere INVIO.

Problemi correlati