Mostrando entradas con la etiqueta BD. Mostrar todas las entradas
Mostrando entradas con la etiqueta BD. Mostrar todas las entradas

domingo, 20 de noviembre de 2011

Plaza 21, Seguridad FAIL


Hoy estaba navegando por una nueva web de compras online llamada "Plaza 21",  es algo así como un shopping center web. Andaba probando el buscador cuando se me ocurrió ver si lo habían validado contra Inyecciones SQL, hice la prueba más simple para estos casos, ingresar una comilla en la caja de texto del buscador y grande fue mi sorpresa al ver lo que la búsqueda me dio como resultado: otras formas de hacer SQLi. La imagen lo dice todo.



Si bien la inyección en sí misma no se completó, si es muy gracioso ver que el buscador de esta clase de resultados, lo que demuestra que no soy el primero que hace esta prueba sobre la mencionada web.


Saludos,
GNK.

lunes, 17 de octubre de 2011

Buscar tablas o columnas en SQL Server


Deben haber 1000 entrada sobre este tema por cada DBMS existente, pero a mí siempre se me olvida cómo va la sentencia y odio tener que buscarla a cada momento. La comparto con un título que supongo es como más se busca esta información en Google.

Para buscar tablas en una Base de Datos 

SQL Server 2000
SELECT  SYSOBJECTS.NAME AS TABLA, SYSCOLUMNS.NAME AS COLUMNA
FROM SYSOBJECTS
 INNER JOIN SYSCOLUMNS
 ON SYSOBJECTS.ID = SYSCOLUMNS.ID
WHERE SYSOBJECTS.XTYPE IN ('U', 'S')
AND SYSOBJECTS.NAME LIKE '%NOMBRE_TABLA%'
ORDER BY SYSOBJECTS.NAME


 
SQL Server 2008
SELECT TABLE_CATALOG AS [BASE DE DATOS], TABLE_NAME AS [TABLA], 
TABLE_TYPE AS [TIPO DE TABLA]
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%NOMBRE_TABLA%'


Para buscar columnas en una Base de Datos

SQL Server 2000
SELECT  SYSOBJECTS.NAME AS TABLA, SYSCOLUMNS.NAME AS COLUMNA
FROM SYSOBJECTS
 INNER JOIN SYSCOLUMNS
 ON SYSOBJECTS.ID = SYSCOLUMNS.ID
WHERE SYSCOLUMNS.NAME LIKE '%NOMBRE_COLUMNA%'
ORDER BY SYSCOLUMNS.NAME



SQL Server 2008
SELECT TABLE_CATALOG AS [BASE DE DATOS], TABLE_NAME AS [TABLA], COLUMN_NAME AS COLUMNA], DATA_TYPE AS [TIPO DE DATO]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%NOMBRE_COLUMNA%'

martes, 13 de septiembre de 2011

¡Feliz día del programador!


Hoy es el día 256 o el 2^18 o el  1111 1111(contando desde cero) del año y desde hace algún tiempo se celebra en esta fecha, 13 de Septiembre, el día del programador. Felicitaciones a todos los que, como yo, son programadores; pertenecientes a esta raza de seres nocturnos que pasamos nuestras vidas frete a una computadora diciéndole que es lo que tienen que hacer y cómo hacerlo. Sé que con el tiempo junto a los administradores de sistemas dominaremos el mundo, Hell Yeah \m/!.  Regresando a la realidad, aprovechen este día para programar alguna broma para los amigos, algún utilitario que crean necesario o aprendan algún lenguaje nuevo sólo por diversión.



System.out.println("Saludos,")
System.out.println("GNK.")

sábado, 16 de julio de 2011

Anotación para el registro (IV)

Para STORE PROCEDURES.

WITH RECOMPILE -> ocacione que el procedure se recompile cada vz q se ejecute.. como si se mandara un query normal. Se utuiliza en desarrollo.

WITH ENCRYPTION -> se encrita y nadie lo puede ver.. solo el usuarios que lo crea y el usuario sa.

Para TRIGGERS.

Las instrucciones de TRIGGERS DML utuilizan dos tavlas especiales  denominadas INSERTED y DELETED.. un update es un delete + insert. Solo se crean para los TRIGGERS. Se pueden hacer SELECTS sobre ellas pero no modificaciones. Estas tablas guardan los registros originales, como estaban antes de ser modificados o borrados.

SET NO COUNT ON impide que se generen mensajes de texto con cada instruccion.

Los TRIGGER, cuando se hace un ingreso masivo de datos, pueden llegar a ser un obstaculo para el performance