Created
January 25, 2016 17:34
-
-
Save tkMageztik/ef29a1d3a34d1df30182 to your computer and use it in GitHub Desktop.
script para troubleshotting ejecutable en sql server 2008r2+
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- ACTIVA EL MOSTRAR OPCIONES AVANZADAS EN SP_CONFIGURE | |
sp_configure 'show advanced', 1; | |
GO | |
-- COMO UN COMMIT PARA EL SCRIPT ANTERIOR | |
RECONFIGURE; | |
GO | |
-- MUESTRA LAS OPCIONES DE SP_CONFIGURE | |
sp_configure; | |
GO | |
DECLARE @V_NAME VARCHAR(50),@V_MINIMUM INT,@V_MAXIMUM INT,@V_CONFIG_VALUE INT,@V_RUN_VALUE INT | |
DECLARE @T_SP_CONFIGURE TABLE | |
( | |
C_NAME VARCHAR(50), | |
C_MINIMUN INT, | |
C_MAXIMUM INT, | |
C_CONFIG_VALUE INT, | |
C_RUN_VALUE INT | |
) | |
INSERT INTO @T_SP_CONFIGURE | |
EXEC sp_configure; | |
SELECT | |
@V_NAME = C_NAME, | |
@V_MINIMUM = C_MINIMUN, | |
@V_MAXIMUM = C_MAXIMUM, | |
@V_CONFIG_VALUE = C_CONFIG_VALUE, | |
@V_RUN_VALUE = C_RUN_VALUE | |
FROM @T_SP_CONFIGURE WHERE C_NAME = 'Database Mail XPs' | |
PRINT 'NOMBRE SERVICIO (NAME): ' + @V_NAME | |
PRINT 'VALOR MINIMO: (MINIMUM)' + CONVERT(VARCHAR(50),@V_MINIMUM) | |
PRINT 'VALOR MÁXIMO: (MAXIMUM)' + CONVERT(VARCHAR(50),@V_MAXIMUM) | |
PRINT 'VALOR CONFIGURADO (CONFIG VALUE): ' + CONVERT(VARCHAR(50),@V_CONFIG_VALUE) | |
PRINT 'VALOR ACTUAL : (RUN VALUE)' + CONVERT(VARCHAR(50),@V_RUN_VALUE) | |
PRINT '' | |
IF @V_CONFIG_VALUE = 1 AND @V_RUN_VALUE = 1 | |
BEGIN | |
DECLARE @V_STATUS VARCHAR(25) | |
DECLARE @T_STATUS TABLE | |
( | |
C_STATUS VARCHAR(25) | |
) | |
-- MUESTRA EL ESTADO DEL MAIL SERVER DE SQL POR DECIRLO ASÍ | |
INSERT INTO @T_STATUS | |
EXEC msdb.dbo.sysmail_help_status_sp; | |
SELECT @V_STATUS = C_STATUS FROM @T_STATUS | |
PRINT 'STATUS DEL SERVICIO DE CORREO: ' + @V_STATUS | |
IF @V_STATUS = 'STOPPED' | |
BEGIN | |
PRINT 'DEBE INICIAR EL SERVICIO DE MAIL UTILIZANDO:' | |
PRINT 'EXEC msdb.dbo.sysmail_start_sp' | |
PRINT 'Luego vuelva a ejecutar el script' | |
PRINT '' | |
END | |
ELSE | |
BEGIN | |
PRINT 'SERVICIO DE MAIL ACTIVADO E INICIADO CORRECTAMENTE' | |
PRINT '' | |
END | |
END | |
ELSE | |
BEGIN | |
PRINT 'DEBE ACTIVAR EL Servicio DATABASE MAIL XPs utilizando:' | |
PRINT '' | |
PRINT '-- ACTIVA EL MOSTRAR OPCIONES AVANZADAS EN SP_CONFIGURE' | |
PRINT 'sp_configure ''show advanced'', 1; ' | |
PRINT 'GO' | |
PRINT '-- COMO UN COMMIT PARA EL SCRIPT ANTERIOR' | |
PRINT 'RECONFIGURE;' | |
PRINT 'GO' | |
PRINT 'sp_configure ''Database Mail XPs'', 1;' | |
PRINT 'GO' | |
PRINT 'RECONFIGURE;' | |
PRINT 'GO' | |
PRINT '' | |
END | |
GO | |
-- ACTIVA EL DATABASE MAIL, SIEMPRE Y CUANDO 'Database Mail XPs' esté en 1 | |
--EXEC msdb.dbo.sysmail_start_sp; | |
-- DETIENE EL DATABASE MAIL, SIEMPRE Y CUANDO 'Database Mail XPs' esté en 1 | |
--EXEC msdb.dbo.sysmail_stop_sp ; | |
-- ACTIVA EL DATABASE MAIL, SIN ESTO NINGUNA CONSULTA DE ESTADO O INICIO DE SERVICIO DE CORREO FUNCIONA, | |
-- ES COMO UN INICIO DE SERVICIO GLOBAL | |
--sp_configure 'Database Mail XPs', 1; | |
--GO | |
--RECONFIGURE; | |
--GO | |
-- PARA ENVIAR CORREOS EL USUARIO DEBE TENER ESTE ROL POR LO MENOS O SER UN OWNER DE MSDB O SYSADMIN | |
--EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole' | |
--GO | |
-- MUESTRA LOS USUARIOS QUE TIENE ACCESO A LOS PROFILES, SIN EMBARGO NO MUESTRAN CIERTOS PROFILES | |
-- QUE SON PUBLICOS AL PARECER. | |
--EXEC msdb.dbo.sysmail_help_principalprofile_sp; | |
--GO | |
-- DESACTIVA EL MOSTRAR OPCIONES AVANZADAS EN SP_CONFIGURE | |
sp_configure 'show advanced', 0; | |
GO | |
-- COMO UN COMMIT PARA EL SCRIPT ANTERIOR | |
RECONFIGURE; | |
GO | |
USE msdb | |
GO | |
DECLARE @V_R_NAME VARCHAR(50),@V_USR_NAME VARCHAR(50) | |
SET @V_USR_NAME = '<usuario_bd_pade>' | |
SELECT @V_R_NAME = p.NAME | |
FROM sys.database_role_members rm | |
JOIN sys.database_principals p | |
ON rm.role_principal_id = p.principal_id | |
JOIN sys.database_principals m | |
ON rm.member_principal_id = m.principal_id | |
where m.name = @V_USR_NAME | |
AND P.name = 'DatabaseMailUserRole' | |
IF @V_R_NAME IS NULL | |
BEGIN | |
PRINT '' | |
PRINT 'NO TIENE ASIGNADO EL ROL ''DatabaseMailUserRole''' | |
PRINT 'FAVOR ASIGNARLO CON: ' | |
PRINT 'exec sp_addrolemember ''DatabaseMailUserRole'', ''<usuario_bd_pade>''' | |
PRINT '' | |
END | |
ELSE | |
BEGIN | |
PRINT '' | |
PRINT 'SI TIENE EL ROL ''DatabaseMailUserRole''' | |
PRINT '' | |
END | |
DECLARE @principal_sid varbinary(85) | |
exec msdb.dbo.sysmail_verify_principal_sp null, @V_USR_NAME, 0, @principal_sid OUTPUT | |
DECLARE @profileid int | |
exec msdb.dbo.sysmail_verify_profile_sp null, 'pf_financiero_de', 0, 0, @profileid OUTPUT | |
IF NOT EXISTS (select * from sysmail_principalprofile where principal_sid = @principal_sid and profile_id = @profileid) | |
BEGIN | |
PRINT 'NO ESTÁ ASIGNADO EL PROFILE DE CORREO DE DINERO ELECTRÓNICO AL USUARIO ELEGIDO' | |
PRINT 'FAVOR ASIGNARLO CON: ' | |
PRINT 'EXECUTE msdb.dbo.sysmail_add_principalprofile_sp' | |
PRINT '@principal_name = ''<usuario_bd_pade>'',' | |
PRINT '@profile_name = ''pf_financiero_de'',' | |
PRINT '@is_default = 1 ;' | |
END | |
ELSE | |
BEGIN | |
PRINT 'ESTÁ CORRECTAMENTE ASIGNADO EL PROFILE AL USUARIO' | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment