diff --git a/modules/DBDrivers/pom.xml b/modules/DBDrivers/pom.xml
index a6296ac429d3ac63695b7695da53da4198a87174..166b673d38e30de42458a61dac99374f0890c77c 100644
--- a/modules/DBDrivers/pom.xml
+++ b/modules/DBDrivers/pom.xml
@@ -16,7 +16,7 @@
DBDrivers
-
+
org.xerial
sqlite-jdbc
3.16.1
@@ -31,6 +31,17 @@
postgresql
42.0.0.jre7
+
+ com.microsoft.sqlserver
+ mssql-jdbc
+ 6.1.0.jre7
+
+
+ com.microsoft.azure
+ azure-keyvault
+
+
+
org.netbeans.api
org-openide-util-lookup
diff --git a/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java
new file mode 100644
index 0000000000000000000000000000000000000000..85747c32a4e3de12548aff4221713f1468e9d699
--- /dev/null
+++ b/modules/DBDrivers/src/main/java/org/gephi/io/database/drivers/SQLServerDriver.java
@@ -0,0 +1,101 @@
+/*
+Copyright 2008-2017 Gephi
+Authors : Mathieu Bastian Eduardo Ramos
+Website : http://www.gephi.org
+
+This file is part of Gephi.
+
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright 2017 Gephi Consortium. All rights reserved.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 3 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://gephi.org/about/legal/license-notice/
+or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License files at
+/cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 3, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 3] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 3 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 3 code and therefore, elected the GPL
+Version 3 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+
+Portions Copyrighted 2017 Gephi Consortium.
+ */
+package org.gephi.io.database.drivers;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.openide.util.lookup.ServiceProvider;
+
+/**
+ *
+ * @author Mathieu Bastian
+ */
+@ServiceProvider(service = SQLDriver.class, position = 40)
+public class SQLServerDriver implements SQLDriver {
+
+ public SQLServerDriver() {
+ try {
+ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(MySQLDriver.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+
+ @Override
+ public Connection getConnection(String connectionUrl, String username, String passwd) throws SQLException {
+ //Bug #745414
+ if (!connectionUrl.contains(";databaseName=")) {
+ String dbname = connectionUrl.substring(connectionUrl.lastIndexOf('/') + 1);
+ String url = connectionUrl.substring(0, connectionUrl.lastIndexOf('/'));
+ connectionUrl = url + ";databaseName=" + dbname;
+ }
+
+ return DriverManager.getConnection(connectionUrl, username, passwd);
+ }
+
+ @Override
+ public String getPrefix() {
+ return "sqlserver";
+ }
+
+ @Override
+ public String toString() {
+ return "SQL Server";
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof SQLServerDriver) {
+ return ((SQLServerDriver) obj).getPrefix().equals(getPrefix());
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return getPrefix().hashCode();
+ }
+}