Skip to main content

I am trying to establish a connection to a MS SQL Server through FME Workbench installed on a Unix and/or Linux box - that uses Microsoft AD credentials. 

I have downloaded and placed the lastest MS SQL Server JDBC from 

https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-2017#available-downloads-of-jdbc-driver-for-sql-server

And I placed the driver v10 jar in the /User/<user>/Library/Application Supper/FME/Plugins/Java directory. As suggested in the "Getting Started with JDBC" article. 

https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/jdbc/getting_started_jdbc.htm

When I create a new Database Connection within FME Workbench using the JDBC driver. But when I click "Test" I keep getting an error either that my user login did not authenticate or that is could not pull back the database schema. Not sure if I have setup everything right for FME Workbench to use the MS JDBC driver correctly. I also see a sqljdbc_auth.dll file inside of the MS SQL JDBC driver download. Not sure if I am supposed to place this some place too.

The below is what my DB connection inside of FME Workbench looks like - 

JDBC Connection String: jdbc:sqlserver://<host>;databaseName=<database>;
Username: <windows domain>/<username>
Password: <password>
Java Driver Class: [blank]

According the documentation: https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/jdbc/getting_started_jdbc.htm

you should place the .JAR in ~/.fme/Plugins/Java

 


According the documentation: https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_ReadersWriters/jdbc/getting_started_jdbc.htm

you should place the .JAR in 
~/.fme/Plugins/Java

 


I have the JDBC plugin installed to the correct place according to FME Desktop's documentation. However I keep getting the following error now, even though I have a Kerberos ticket authenticated to the domain this computer is part of.

 

 

javax.security.auth.login.LoginException: Unable to obtain Principal Name for authentication

 

I updated my connection string to include the following:

 

 

jdbc:sqlserver://;servername=<server>;integratedSecurity=true;authenticationScheme=JavaKerberos

 

Maybe Java can't find my Kerberos ticket?