Showing posts with label SQL Server. Show all posts
Showing posts with label SQL Server. Show all posts
Thursday, April 19, 2007
SQL Server 2005 Books Online
Otro link de Windows live muy bueno que vale la pena tenerlo, SQL Server 2005 Books Online.
Wednesday, March 07, 2007
Funciones pwdEncrypt y pwdCompare
Son funciones no documentadas de SQL Server, que sirven para encriptar información (pwdencrypt) y la otra para comparar un string no encriptado (pwdcompare), con la representación de un string encriptado.
No tendremos forma de decodificar en base al string generado. Pero nos podemos apoyar de la función pwdcompare, para validar si el string que tenemos de información pertenece al string encriptado o no. Si es igual regresaria un 1, de lo contrario un 0.
Lo malo como son funciones no documentadas, están no pueden ser soportadas en futuros releases de SQL server.
Si quieres guardar la información en una tabla de lo que genera pwdencryp, puedes utilizar un campo tipo varbinary(255).
Ejemplo:
select pwdencrypt('password')
select pwdcompare('password', 0x01004816A32F93C56C37E
25B074BEA94254AE005093173
984A4947EEA0DA47328628D47
AC4737B331292CCB54352)
En el blog Alexander Gladchenko de muestra como los valores arrojados de SQL Server 2000, son aceptables para SQL Server 2005.
No tendremos forma de decodificar en base al string generado. Pero nos podemos apoyar de la función pwdcompare, para validar si el string que tenemos de información pertenece al string encriptado o no. Si es igual regresaria un 1, de lo contrario un 0.
Lo malo como son funciones no documentadas, están no pueden ser soportadas en futuros releases de SQL server.
Si quieres guardar la información en una tabla de lo que genera pwdencryp, puedes utilizar un campo tipo varbinary(255).
Ejemplo:
select pwdencrypt('password')
select pwdcompare('password', 0x01004816A32F93C56C37E
25B074BEA94254AE005093173
984A4947EEA0DA47328628D47
AC4737B331292CCB54352)
En el blog Alexander Gladchenko de muestra como los valores arrojados de SQL Server 2000, son aceptables para SQL Server 2005.
Tuesday, February 20, 2007
SQL Server Reconstruir indices
Enseguida se presenta una solución alternativa para reconstruir los índices de una base de datos. Es un procedimiento simple y muy eficiente en cual tu tienes el control de lo que SQL Server va estar realizando en base de datos.
Solo tendrían que inicializar la variable con el nombre de la base datos y el select de la primer línea con el nombre de su base da datos.
Espero sea útil, y si tienes alguna otra alternativa compártela ! :)
--Cursor to get tables names
declare usertabs cursor for select name from EWIMS_ARCHIVE.dbo.sysobjects where xtype = 'U'
declare @strTableName varchar(255)
declare @strDBName varchar(64)
declare @strFullTableName varchar(255)
set @strDBName = 'EWIMS_ARCHIVE'
-- Used to format messages
declare @crlf varchar (2)
set @crlf = char(13) + char(10)
--Print begin date & time
print getdate()
open usertabs
fetch next from usertabs
into @strTableName
while @@FETCH_STATUS = 0
begin
set @strFullTableName = @strDBName + '.dbo.' + @strTableName
print 'dbreindex ('+ @strFullTableName+ ','''',90) with no_infomsgs'
--Rebuild index(es)for the table
dbcc dbreindex (@strFullTableName,'',90) with no_infomsgs
if @@error <> 0
begin
RAISERROR('An error occurred rebuilding index',11,1)
end
else print 'Index successfully re-built'
print @crlf
fetch next from usertabs
into @strTableName
end
close usertabs
deallocate usertabs
--Print end date & time
print getdate()
Solo tendrían que inicializar la variable con el nombre de la base datos y el select de la primer línea con el nombre de su base da datos.
Espero sea útil, y si tienes alguna otra alternativa compártela ! :)
--Cursor to get tables names
declare usertabs cursor for select name from EWIMS_ARCHIVE.dbo.sysobjects where xtype = 'U'
declare @strTableName varchar(255)
declare @strDBName varchar(64)
declare @strFullTableName varchar(255)
set @strDBName = 'EWIMS_ARCHIVE'
-- Used to format messages
declare @crlf varchar (2)
set @crlf = char(13) + char(10)
--Print begin date & time
print getdate()
open usertabs
fetch next from usertabs
into @strTableName
while @@FETCH_STATUS = 0
begin
set @strFullTableName = @strDBName + '.dbo.' + @strTableName
print 'dbreindex ('+ @strFullTableName+ ','''',90) with no_infomsgs'
--Rebuild index(es)for the table
dbcc dbreindex (@strFullTableName,'',90) with no_infomsgs
if @@error <> 0
begin
RAISERROR('An error occurred rebuilding index',11,1)
end
else print 'Index successfully re-built'
print @crlf
fetch next from usertabs
into @strTableName
end
close usertabs
deallocate usertabs
--Print end date & time
print getdate()
Microsoft lanza Service Pack 2 para SQL Server 2005
Microsoft SQL Server 2005, SP 2 habilita a sus clientes tomar ventaja de los nuevas funcionalidades dentro de Windows Vista y Office 2007.
Las areas donde hay mejoras son:
Las areas donde hay mejoras son:
- Analysis Services
- Database Engine
- Integration Services
- Replication
- Reporting Services
- Shared Tools
Wednesday, July 05, 2006
SQL server Monitoreo de Jobs
Requieres realizar un monitoreo de Jobs, a un servidor de producción. El problema es que no eres el dueño de los Jobs, tienes tu propia cuenta solo de lectura a la base de datos de tu proyecto. El problema es que estos Jobs no los puedes visualizar a través de la consola de SQL Server.
Se me presento esta situación el cambio de owner de los Jobs seria muy difícil y podrías afectar su ejecución ya que la es de solo lectura.
Así que la mejor solución fue realizar una consulta a las tablas de Jobs, que mantiene en la base MSDB:
select b.name, b.enabled, b.description,
a.instance_id, a.step_id, a.step_name, a.message, a.run_status, a.run_date,
a.run_time, a.server
from msdb..sysjobhistory a inner join msdb..sysjobs b on a.job_id = b.job_id
order by b.name, a.run_date
Esta base de datos conservan la información utilizada por SQL Server y sus componentes, pero estas información no debe ser alteradas directamente por ningún usuario. Sin embargo muchas de las columnas o campos que se encuentran en estas tablas no se encuentran documentados.
La información que conserva esta base de datos es información es utilizada por SQL Server internamente. Conserva información del diseño de las bases, Store procedures, funciones, Jobs, catalogo de funciones del API, DTS, entre otras cosas.
Así que con un acceso de solo lectura a MSDB se soluciono.
Se me presento esta situación el cambio de owner de los Jobs seria muy difícil y podrías afectar su ejecución ya que la es de solo lectura.
Así que la mejor solución fue realizar una consulta a las tablas de Jobs, que mantiene en la base MSDB:
select b.name, b.enabled, b.description,
a.instance_id, a.step_id, a.step_name, a.message, a.run_status, a.run_date,
a.run_time, a.server
from msdb..sysjobhistory a inner join msdb..sysjobs b on a.job_id = b.job_id
order by b.name, a.run_date
Esta base de datos conservan la información utilizada por SQL Server y sus componentes, pero estas información no debe ser alteradas directamente por ningún usuario. Sin embargo muchas de las columnas o campos que se encuentran en estas tablas no se encuentran documentados.
La información que conserva esta base de datos es información es utilizada por SQL Server internamente. Conserva información del diseño de las bases, Store procedures, funciones, Jobs, catalogo de funciones del API, DTS, entre otras cosas.
Así que con un acceso de solo lectura a MSDB se soluciono.
Subscribe to:
Posts (Atom)