Como seguramente todos los que estamos en el mundo de TI hemos escuchado en los últimos años, la tendencia de la tecnología es ir hacia la nube. el objetivo de este post no es discutir esa tendencia, sino presentar como es que Powershell se puede convertir en una herramienta muy valiosa al momento de interactuar con la nube. Aquí vamos a mostrar como crear algunos objetos para poder utilizar SQL Azure Database.

Lo primero que debemos tener es una cuenta de Azure, la cual la podemos crear de manera gratuita desde esta página, y se nos dará un crédito inicial para poder realizar las pruebas. Una vez que tenemos eso listo debemos seguir estas instrucciones para instalar el modulo de Powershell AzureRM.

Ahora debemos ingresar desde Powershell con la cuenta de Azure que ya tenemos creada. Al ejecutar el siguiente comando se presentara una pantalla de “login” para poder ingresar las credenciales de Azure.

Luego debemos crear un Resource Group de prueba que alojara todos los objetos que crearemos para crear nuestra base de datos SQL en Azure, para esto creare un par de variables las cuales básicamente indicaran el nombre y la localización de mi Resource Group.

Una vez que el Resouce Group ha sido creado, vamos a proceder a la creación del servidor Lógico para nuestra base de datos. Es un servidor lógico porque no contiene todo lo que normalmente encontramos dentro de una instancia de base de datos instalada “on premise”. Para crear dicho servidor debemos asignarle un nombre el cual en este caso estoy generando uno de manera aleatoria y tener una credencial para el administrador del servidor, algo así como el usuario “sa”, una vez que tenemos la credencial usamos el comando “New-AzureRmSqlServer”

Finalmente una vez que tenemos el servidor creado, podemos proceder a crear nuestra base de datos SQL en Azure, lo único que necesitamos es definir un nombre, el cual lo haré a través de una variable. Adicionalmente hay que definir la edición o tamaño de nuestra base de datos, en esta ocasión vamos a utilizar la opción “Free” que nos da 5 DTU de recursos de procesamiento y hasta 32 MB de almacenamiento. Existen otros tamaños de base de datos los cuales son pagados pero ofrecen mucho mas almacenamiento y potencia de procesamiento, pero para nuestra prueba esta bien con la opción “Free”. Curiosamente la opcion “Free” no esta disponible desde el portal de Azure, solo a través de Powershell.

Listo, ¿podremos conectarnos a nuestra base de datos?, la respuesta es NO, Azure por defecto es seguro y no permite conexiones a menos que se haya configurado correctamente las reglas de firewall del servidor o de la base de datos. Si intentamos conectarnos en este momento vamos a recibir un mensaje igual al siguiente, donde se nos pedirá acceder con nuestra cuenta Azure para que el mismo SSMS cree la regla de Firewall de  servidor para poder acceder, pero nosotros no seguiremos ese camino sino que la crearemos desde Powershell.

 

Para crear la regla desde Powershell debemos primero obtener nuestra IP publica ya que esta sera la que se use para poder acceder a nuestra base de datos, no la IP de la red interna a la que estamos conectados. Para obtener esta IP, utilice el codigo entrontrado en este link. Una vez que tenemos la IP procedemos a crear la regla con el comando “New-AzureRmSqlServerFirewallRule”.

Ahora si podemos acceder a nuestro servidor a través de nuestro SSMS.