Skip to content

exception SQL Server instance in use does not support column encryption #65

@ghost

Description

I have solution which tries to connect to Azure SQL database, database contains one table with few columns, one of columns has enabled column encryption (Always Encrypted with Azure KeyVault provider).
application is not able to connect to Azure SQL on Linux machine.
Finally I prepared docker image based on standard dockerhub java image (linux based). When I am running this image on my Windows 10 OS (but internally it still uses Linux docker in docker for windows) connection is successful, but when I upload my image to ubuntu linux VM in Azure it fails with exception:

com.microsoft.sqlserver.jdbc.SQLServerException: SQL Server instance in use does not support column encryption.
at com.microsoft.sqlserver.jdbc.TDSReader.TryProcessFeatureExtAck(IOBuffer.java:7346)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:123)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4376)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3188)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:61)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3151)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7535)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2438)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1973)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1616)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1447)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:788)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1187)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at Main.main(Main.java:81)

If I change connection string to use standard sql connection without columnEncryptionSetting than it works on both platforms.

included source codes and also trace logs from both scenario - docker on ubuntu linux and same docker image on windows10 docker.

Valdemar
project.zip
docker-on-ubuntu-1604.txt
docker-on-windows10.txt

Metadata

Metadata

Assignees

Labels

Under ReviewUsed for pull requests under review

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions