944 063 154

Blog

Etiqueta: Microsoft

PDO en la próxima versión del driver SQL Server para PHP

Publicado enDesarrollo y Programación

Hace unos días podíamos leer que por fin el driver de PHP para trabajar con SQL Server desde PHP contará con soporte para PDO en su versión 2.0.

PDO (PHP Data Objects) es una extensión que permite el acceso a los datos para PHP 5 a través de una capa de abstracción. Esto permite que puedan hacerse consultas a la base de datos de PHP utilizando funciones propias del lenguaje de programación. Una extensión que fue desarrollada en 2003, aunque no fue estable hasta la llegada de PHP 5.0; la versión del lenguaje de programación publicada en 2004. Para poder considerar a PDO como estable y que incluyera su primera interfaz por defecto, aún tendría que pasar otro año más.

Aunque PHP no sea un lenguaje de programación orientado a objetos por sí mismo, sí permite esta funcionalidad. Gracias a la extensión PDO es posible utilizar funciones de extensión regulares para acceder a los datos. Esto es posible debido a la implementación de la tecnología orientada a objetos.

Porqué usar PDO

Esta versión del driver de SQL Server es compatible con la API de PDO. Con independencia a esta compatibilidad, se sigue manteniendo la API nativa de SQL Server que existía hasta el momento. De esta forma es posible ofrecer una compatibilidad absoluta entre las dos API. Además de haberse creado una capa común a ambas que permite disponer de las funciones de ambas APIs; tal y como se indica en el gráfico inferior.

La incorporación de este controlador de SQL Server es un gran avance en el desarrollo de la aplicación.  Y también lo es para todos aquellos desarrolladores que trabajan con PHP bajo algún entorno de Microsoft. Algunos de los ORM más importantes están escritos en PHP; al igual que muchos gestores de contenido, como Drupal. Con el driver PDO es mucho más fácil integrar aplicaciones y añadir más funcionalidades a uno de los frameworks más utilizados para el desarrollo web.

PDO-php-sqlsrv

Puesto que la versión estable aún no se ha publicado, no es posible ofrecer este servicio por el momento. Eso sí, en cuanto esté disponible, procederemos a implantar el driver en todos nuestros servicios de hosting, para poder ofrecerte siempre el mejor servicio. Queremos hacerte la vida en internet mucho más fácil y ofrecer siempre las últimas innovaciones tecnológicas y versiones estables es prueba de ello. Además, utilizar las últimas versiones es una forma muy eficaz de evitar cualquier ataque informático; ya que en cada actualización de los servicios se soluciona cualquier problema de seguridad que pudiera haber.

Importar una base de datos a SQL Azure (II de II)

Publicado enSistemas TI

Anteriormente veíamos cómo importar una base de datos a SQL Azure utilizando un Wizard para ello. En esta ocasión vamos a realizar la operación directamente a través de SQL Server Management Studio (SSMS); para ello, generaremos un script.

Antes de nada, deberemos comprobar si tenemos compatibilidad con Azure. Para ello, es necesario tener instalada la versión R2 de SQL Server Management Studio. Si no cuentas con la última actualización de esta aplicación, puedes descargarla en su sitio oficial.

De local a un script

Para poder exportar la base de datos en local y llevarla a un script en un formato que sea compatible con Azure; primero debemos conectarnos desde SSMS a nuestro server local. Una vez realizada la conexión, podremos realizar la exportación de la base de datos en el formato de Azure. Para ello, utilizaremos el asistente de la aplicación que permite la generación de scripts.

En primer lugar, y una vez dentro de Microsoft SQL Server Management Studio, debemos buscar la base de datos “eventos”. Haciendo click con el botón derecho del ratón, elegiremos tareas > generar scripts de entre las opciones que se despliegan en el menú.

importar una base de datos a sql azure-export

importar una base de datos a sql azure-script

En nuestro caso, vamos a exportar todas las tablas y los usuarios que se encuentran dentro de la base de datos. Si solo necesitas exportar unos datos en concreto, este es momento de que lo indiques. De esperar, ya no será posible hacerlo más tarde.

importar una base de datos a sql azure-objetos

En este paso debemos indicar dónde queremos que se guarde el script que vamos a generar. Para ello, tenemos que acceder a las opciones Avanzadas para especificar qué queremos exportar en formato para Azure. Así, podremos hacerle saber que queremos incluir tanto el esquema como todos los datos que se recogen en la base de datos.

importar una base de datos a sql azure-scripting

importar una base de datos a sql azure-opciones

Con esto, nuestro script ya está listo. Ahora, es el momento de iniciar la importación de la base de datos que hemos exportado previamente en nuestro servidor SQL Azure.

importar una base de datos a sql azure-resumen

importar una base de datos a sql azure-guardar script

Importar una base de datos a SQL Azure

Una vez hemos descargado la base de datos, deberemos seguir los siguientes pasos para subirla a SQL Azure. Para ello, en primer lugar, debemos conectar nuestro servidor con el servicio SQL Azure; para ello, basta con que iniciemos sesión.

SQL Server 2008 R2-importar una base de datos a sql azure

Una vez dentro de nuestra suscripción, y al igual que cuando hemos realizado la importación a través de Wizard, necesitamos crear una nueva base de datos. Como en el anterior tutorial, hemos llamado a esta nueva base de datos “eventos”.

Crear base de datos-importar una base de datos a sql azure

Por último abrimos nuestro script y lo ejecutaremos en el servidor SQL Azure cuando aparezca el mensaje de que los comandos han sido completados de forma correcta.

importar una base de datos a sql azure

De esta forma, nuestra base de datos local en SQL Server, ya estará importada en Azure.

importar una base de datos a sql azure-explorador

Aquí termina nuestro tutorial paso a paso de cómo importar una base de datos a SQL Azure. Y ya sabes, no dudes en escribir si tienes alguna duda o consulta; estaremos encantados de atenderte.

Importar una base de datos a SQL Azure (I de II)

Publicado enServidores cloud

En el siguiente post veremos como subir una base de datos local en SQL Server 2008 al servicio SQL Azure.

Existen varias maneras de importar una base de datos a SQL Azure:

  1. Mediante los servicios de integración de SQL Server 2008 (SSIS).
  2. Con BCP.
  3. Desde el código, usando la clase System.Data.SqlClient.SqlBulkCopy.
  4. Utilizando wizards o scripts para la carga de los datos.

En este artículo, utilizaremos la ultima opción para importar la base de datos.

El cloud de Microsoft

Azure, la nube de Microsoft, tiene algunas limitaciones. Por ejemplo, no permite la importación de bases de datos mediante un “restore” ni tampoco adjuntar una base de datos al servidor SQL de Azure.

Para poder realizar la importación de una base de datos, en primer lugar, es necesario crear un servidor SQL Azure. A continuación, habrá que copiar el nombre del servidor que hemos creado, ya que será necesario conocerlo para saber dónde tenemos que conectarnos.

En nuestro caso, hemos aprovechado para crear una nueva base de datos a la que hemos llamado “eventos”. Esto es un paso opcional, ya que como veremos más adelante es posible crear nuevas bases de datos desde el propio Wizard.  Este permite la creación de hasta 149 bases de datos por servidor SL Azure y con un tamaño máximo de 1 GB ó 10 GB.

Importando una base de datos con SQL Azure

En primer lugar, deberemos acudir a nuestra suscripción de Windows Azure Services. Una vez hayamos iniciado sesión, deberemos pinchar en SQL Azure > Database. Allí podremos ver cuántas bases de datos tenemos en el servidor, cuál es su tipo y qué tamaño ocupan.

 

SQL Azure

 

Al lado de la pestaña Databases, se encuentra la de Firewall Settings. Aquí tenemos que añadir al menos una regla que permita la conexión desde nuestro equipo al servidor, en nuestro caso contamos con 3 reglas diferentes.

Firewall

Ahora utilizaremos SQL Azure Migration Wizard para poder migrar la base de datos. La descarga de esta aplicación está disponible en CodePlesk. Para instalarla, sólo hay que seguir el asistente de instalación. Un proceso tan sencillo que no es necesaria la explicación. Pero por si acaso te surje alguna duda, adjuntamos los pantallazos del proceso.

SQL Migration Wizard 1

SQL Azure Migration Manager 2

SQL Azure Migration Manager 3

SQL Azure Migration Manager 4

SQL Azure Migration Manager 5

SQL Azure Migration Manager 6

SQL Azure Migration Manager 7

SQL Azure Migration Manager 8

SQL Azure Migration Manager 9

Si tienes instalado Microsoft SQL Server Management Studio R2, puedes conectarte a tu servidor SQL Azure. Y, si no cuentas con esta herramienta, te facilitamos un enlace para que puedas iniciar la descarga.

sql2008R2

En Microsoft SQL Server Management Studio, solo tienes que acudir al explorador de objetos y conectar el servidor. Una vez estés conectado al servidor, deberás abrir la carpeta que lleva el nombre del servidor al que quieres acceder. Y dentro de esta buscar la carpeta que has creado con anterioridad. Recordamos que nosotros le hemos dado el nombre de “eventos”.

SQL 2008 Management Studio R2

¿Buscas otra forma diferente de realizar la importación de una base de datos a SQL Azure? Consulta la segunda parte de cómo importar una base de datos a SQL Azure.

Virtualizando SQL Server 2008 sobre Hyper-V R2

Publicado enSistemas TI

Si vas a virtualizar un entorno SQL Server 2008, es recomendable que tengas en cuenta los siguientes aspectos:

Los diferentes tipos de discos

  • De espacio fijo. En SQL Server 2008 es muy importante el I/O (entrada y salida) de los volúmenes con los que se está trabajando. Por ello, nuestra recomendación es utilizar siempre discos de espacio fijos para guardar toda la información.
  • Controladora SCSI. Al igual que sucede en los entornos físicos, en un entorno virtual sólo podremos colocar hasta 4 discos IDE. Por lo que si necesitamos más discos lo mejor es utilizar un bus SCSI que permita el almacenamiento de los datos.
  • Usar varios VHD. Es decir, uno para el propio sistema y los archivos de instalación de SQL; otro para tempdb, otro para los logs, otro para los datos… Esto, al igual que en un entorno real permite mejorar el I/O, sobre todo si disponemos de una cabina y dedicamos discos separados (spindles) o LUN para mejorar aún más el I/O. Incluso en el caso de que no dispongamos de discos separados sigue siendo recomendable utilizar diferentes VHDs como forma de almacenamiento de la información.
  • Sistema de archivos. NTFS con unidad de asignación a 64 K; ya que esta tecnología nos permitirá obtener un mejor rendimiento.

El tipo de red

  • Es importante que la red sea Gigabit y que la velocidad haya sido configurada en full-duplex.
  • Siempre que sea posible usaremos los adaptadores sintéticos que usan los Servicios de Integración instalados en la máquina virtual para funcionar. Este tipo de dispositivos ofrecen mucho mejor rendimiento que los dispositivos emulados. Estos últimos sólo son útiles por razones de compatibilidad en sistemas que no soportan los Servicios de Integración (anteriores a MS Windows Server 2003 R2, kernels de Linux no soportados, etc…).
  • Si es posible usar teaming para mejorar el rendimiento y ofrecer redundancia. Algo que es especialmente interesante para realizar conexiones a una cabina vía iSCSI.

Memoria de la máquina virtual

La memoria se comporta exactamente igual en un entorno virtual que dentro de una máquina física. A diferencia de otros hypervisores, en Hyper-V no se permite el sobreuso (aunque MS ya está trabajando en ello); por lo que la cantidad asignada a una máquina virtual (VM) se reserva en el nodo anfitrión por completo. Recuerda que es importante dejar al propio nodo anfitrión un mínimo de 2 GB libres para que puedan ejecutarse correctamente el sistema y cada una de sus tareas.

Si sigues estos apuntes no debería haber ningún problema para virtualizar un entorno SQL Server sobre Hyper-V.

Tecno-amig@, ¿ya sabes cómo usar Hyper-V con un adaptador de red inalámbrico?

Generar un archivo CSR en IIS 6.0

Publicado enSistemas TI

La instalación de un certificado de seguridad SSL es fundamental para garantizar la seguridad de un sitio web. Un movimiento que empezó por las tiendas online y los sitios web que solicitaban información sensible al usuario y que ha acabado por extenderse a todo tipo de páginas web. Actualmente existen diferentes tipos de certificados SSL en el mercado, tanto de pago como los gratuitos de Let’s Encrypt, certificados SSL que puedes instalar tú mismo o la empresa en la que lo adquieres. Por ejemplo, en Linube nos encargamos de la instalación y configuración de los certificados SSL que nuestros clientes adquieran en nuestro site.

Si por el motivo que sea tienes que ser tú quien se encargue de la instalación del SSL, ten en cuenta que necesitarás un CSR; es decir, una solicitud para la firma del certificado. En este archivo se encuentran algunos de los datos que serán incluidos en el certificado SSL. El CSR contiene información como el nombre de tu empresa, una dirección asociada a la misma o el dominio para el que se ha generado dicho certificado SSL. Además de esta información, en el CSR se incluye una llave pública que también es necesaria para la instalación del certificado. Si tu servidor web utiliza Windows como sistema operativo, y por tanto es IIS, te mostramos cómo puedes generar el CSR en IIS 6.0.

Generando un CSR en IIS 6.0

Para generar un CSR en IIS 6.0, en primer lugar tenemos que acceder al servidor web de Windows IIS. Una vez allí, debemos acudir a Propiedades del sitio > Seguridad de directorios. Aquí, es necesario hacer click en Certificado del servidor para poder Crear un nuevo certificado. En este momento tendremos que elegir la opción Preparar la petición ahora pero enviarla más tarde y, a continuación, poner un cifrado para el certificado SSL y dejar la longitud en bits de 1024. Después, rellena el resto de los datos que se solicitan en el formulario hasta finalizar.

Es importante que tengas en cuenta que donde se solicita el ‘nombre común’ (common name) deberás poner el nombre completo del dominio para el que se solicita el certificado de seguridad. En nuestro caso, el dominio sería www.linube.com.

Cómo salvar la key privada

Una vez hayas terminado con el punto anterior será necesario que salves la clave privada que permitirá el funcionamiento del certificado SSL. Para ello, ve a MMC y escoge como complemento Certificates. En este punto deberás seleccionar Request > All task y exportar la información que obtenida.

Para mayor información acerca de cómo generar un CSR en IIS 6.0, puedes acudir a la documentación oficial.

Bloquear IPs desde el firewall de Windows 2008

Publicado enSistemas TI

Una de las cosas que más me gustan respecto a la seguridad de Windows, son las mejoras introducidas en el firewall de Windows 2008. Entre las nuevas posibilidades que ofrece, si lo comparamos con la versión anterior de Windows, destaca la de poder bloquear IPs atacantes de una forma sencilla. Y es que con esta nueva funcionalidad, bloquear IPs desde el firewall de Windows ya es una realidad. Algo que no resulta nada complicado; ni tampoco necesitarás contar con conocimientos técnicos avanzados para ello.

Estoy seguro de que ningún administrador deja de revisar la pestaña Seguridad en el Visor de Eventos. Esta pestaña, en muchas ocasiones, es de gran ayuda para detectar reiterados intentos de conexión. Con independencia de que estos sean legítimos o no; aunque estos ataques no consigan nada, pueden lograr provocar un ataque DDoS en toda regla. Para evitar este tipo de situaciones, lo más adecuado es filtrarlos a través de un firewall perimetral. Actualmente, y desde la versión Windows 2008, a falta de uno disponemos de dos firewalls. Es decir, además de utilizar el cortafuegos perimetral por defecto del sistema operativo, también podemos filtrar el tráfico desde el propio server.

Cómo bloquear IPs desde el firewall de Windows

1. En primer lugar, tenemos que abrir el firewall de Windows y acudir al asistente. Desde ahí podremos crear nuevas reglas de entrada que permitan filtrar el tráfico.

2. A continuación, y una vez allí, seleccionamos añadir nueva regla de entrada.

3. Seguidamente, en el apartado ‘Tipos de regla’ añadimos una nueva regla personalizada. Esta opción nos permite decidir a qué tráfico, o direcciones IP, queremos impedirle la entrada en el servidor. En cualquiera de las otras tres opciones, la limitación se puede aplicar a programas, puertos o accesos predefinidos.

Bloquear IPs desde el firewall de Windows-Añadir regla de firewall

4. Una vez hayamos especificado la nueva regla, tendremos que acudir a la pestaña de ‘Programa’. Desde ahí será posible aplicar la nueva regla que acabamos de crear a Todos los programas.

Bloquear IPs desde el firewall de Windows-firewall

5. Justo después, en ‘Protocolo y puertos’, deberemos especificar el tipo de protocolo. Nuestra recomendación en este punto es optar por Cualquiera; de forma que se añada mayor seguridad al servidor.

Bloquear IPs desde el firewall de Windows-fw protocolo

6. Ahora tendremos que agregar dirección la IP que queremos bloquear. Aunque lo habitual es limitar el acceso a unas determinadas IPs, también puedes bloquear un rango entero de direcciones con facilidad.

Bloquear IPs desde el firewall de Windows-fw agregar ip a bloquear

7. En la siguiente pestaña, ‘Acción’, deberemos seleccionar la opción: Bloquear la conexión.

Bloquear IPs desde el firewall de Windows-fw bloquear la conexion

8. Llegados a este punto, tendremos que indicar a qué redes aplicamos la regla. Esto lo puedes hacer desde la pestaña de ‘Perfil’.

Bloquear IPs desde el firewall de Windows-fw redes

9. Para ir finalizando con el bloqueo de IPs desde el Firewall de Windows, es necesario ponerle un ‘Nombre’ identificativo. Así, cuando quieras editar la configuración, o consultar qué reglas tienes definidas en el servidor, lo tendrás más sencillo.

Bloquear IPs desde el firewall de Windows-nombre regla

10. Pulsando ‘Finalizar’ en el apartado de ‘Nombre’, ya habremos creado nuestra nueva regla de seguridad.

Bloquear IPs desde el firewall de Windows-2008

Como podemos ver, con Windows 2008 crear reglas en el Firewall es mucho más fácil. Además, la posibilidad de poder activar dos cortafuegos diferentes, pero complementarios, hacen que la seguridad del servidor sea aún mejor.

Ahora que ya sabes cómo bloquear IPs desde el firewall de Windows 2008, puedes crear tantas reglas nuevas como consideres necesarias. De esta forma, además de añadir mayor seguridad, podrás evitar que tu alojamiento pueda ser hackeado.