REVISIÓN: La columna TextData del suceso SP: StmtStarting y el suceso SP: StmtCompleted muestra la instrucción Transact-SQL dinámica incluso cuando el procedimiento almacenado está cifrado

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 825883
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Síntomas
Cuando se ejecuta un procedimiento almacenado cifrado que se ejecuta una instrucción de Transact-SQL dinámica, puede observar que la columna TextData del suceso SP: StmtStarting y el suceso SP: StmtCompleted en la herramienta Analizador de SQL muestra la instrucción Transact-SQL dinámica.
Solución

Información del Service pack

Para resolver este problema, obtenga el service pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211 Cómo obtener el service pack más reciente de SQL Server 2000

Información de la revisión

La versión en inglés de esta revisión tiene los atributos de archivo (o posteriores) que se enumeran en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora universal coordinada (UTC). Al ver la información de archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en la herramienta fecha y hora del Panel de Control.
   Date         Time   Version        Size        File name   -------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe   25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll   25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll   24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll   01-Apr-2003  02:07                      1,873  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll   07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll   07-May-2003  18:47                    132,096  Opends60.pdb   02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll   22-May-2003  22:57                     19,195  Qfe469571.sql   12-Jun-2003  16:37                  1,083,989  Replmerg.sql   04-Apr-2003  21:53  2000.80.798.0     221,768  Replprov.dll   08-Feb-2003  06:40  2000.80.765.0     307,784  Replrec.dll   05-May-2003  00:05                  1,085,874  Replsys.sql   01-Jun-2003  01:01  2000.80.818.0     492,096  Semobj.dll   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   29-May-2003  00:29                    115,944  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll   07-Apr-2003  17:44                     25,172  Sqldumper.exe   19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll   23-Jun-2003  22:40  2000.80.837.0   7,553,105  Sqlservr.exe   23-Jun-2003  22:40                 12,747,776  Sqlservr.pdb   08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll   25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll   01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll   01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll   01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll   31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll   30-Apr-2003  23:52                    132,096  Ums.pdb   02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll				
Nota: Debido a las dependencias de archivos, la revisión más reciente o la característica que contiene estos archivos puede contener también archivos adicionales.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se aplica a" de este artículo.Este problema se corrigió primero en Microsoft SQL Server 2000 Service Pack 4.
Más información

Pasos para reproducir el comportamiento

  1. Iniciar el analizador de consultas SQL y, a continuación, conectarse a la computadora que ejecuta Microsoft SQL Server.
  2. Ejecute la siguiente instrucción de Transact-SQL para crear el sp_MytestencryptionWithExec y el sp_MytestencryptionNoExec procedimientos almacenados:
    use northwindgodrop proc sp_MytestencryptionWithExecgoCREATE PROCEDURE [dbo].[sp_MytestencryptionWithExec]WITH ENCRYPTIONASDECLARE @MySQL varchar(100)BEGIN-- SET @MySQL = 'select @@version'-- EXEC(@MySql)EXEC('select @@version')ENDGOdrop proc sp_MytestencryptionNoExecgoCREATE PROCEDURE [dbo].[sp_MytestencryptionNoExec]WITH ENCRYPTIONASDECLARE @MySQL varchar(100)BEGINselect @@versionENDGO
    Nota: La sp_MytestencryptionWithExec procedimiento almacenado tiene una instrucción de Transact-SQL dinámica. La sp_MytestencryptionNoExec procedimiento almacenado no tiene ningún Transact-SQLstatement dinámico.
  3. Iniciar el analizador de SQL para capturar el SP: StmtStarting evento y el StmtCompleted evento. Para ello, siga estos pasos:
    1. Inicie el Analizador SQL.
    2. En el menú archivo, elija nuevo y, a continuación, haga clic en seguimiento.
    3. En el cuadro de diálogo Conectar a SQL Server , proporcione la información de autenticación para conectarse al equipo que está ejecutando SQL Server y, a continuación, haga clic en Aceptar.
    4. En el cuadro de diálogo Propiedades de traza , haga clic en la ficha eventos .
    5. En la lista de clases de sucesos disponibles , expanda Procedimientos almacenados.
    6. En Los procedimientos almacenados, expanda StmtCompletedy, a continuación, haga clic en Agregar. De forma similar, agregue el evento SP: StmtStarting .
    7. Haga clic en Ejecutar.
  4. Ejecute la siguiente instrucción de Transact-SQL en el QueryAnalyzer:
    Use northwindgoExec sp_MytestencryptionWithExecgoExec sp_MytestencryptionNoExecGo
  5. En el analizador de SQL, haga clic en Detener traza en el menúarchivo .

    Nota: Puede observar que la columna TextData de la SP: StmtStarting y el StmtCompleted eventos muestra la instrucción Transact-SQL dinámica aunque el procedimiento de thestored sp_MytestencryptionWithExec se cifra.

Propiedades

Id. de artículo: 825883 - Última revisión: 02/01/2015 05:10:00 - Revisión: 4.0

  • kbnosurvey kbarchive kbstoredproc kbqfe kbsqlserv2000presp4fix kbfix kbbug kbmt KB825883 KbMtes
Comentarios