Skip to content

Commit

Permalink
Updated new Azure Keyvault Keywords in Connection String
Browse files Browse the repository at this point in the history
Added newly introduced Connection String Keywords (keyVaultProviderClientId, keyVaultProviderClientKey) in Microsoft JDBC Driver 7.4 version to enable use of Azure Key Vault Provider
Based on MS JDBC Pull Request (microsoft/mssql-jdbc#902) and my testing of its working
  • Loading branch information
manikandanramaswami authored Jan 4, 2020
1 parent 34d28d4 commit 30cd74e
Showing 1 changed file with 1 addition and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ ms.author: genemi
|Name|Description|
|----------|-----------------|
|New connection string keyword:<br /><br /> columnEncryptionSetting|columnEncryptionSetting=Enabled enables Always Encrypted functionality for the connection and columnEncryptionSetting=Disabled disables it. Accepted values are Enabled/Disabled. The default is Disabled.|
|New connection string keyword:(MS JDBC 7.4 onwards)<br /><br /> keyVaultProviderClientId <br /><br /> keyVaultProviderClientKey |keyVaultProviderClientId=\<ClientID>;keyVaultProviderClientKey=\<ClientKey> <br/><br/> Registers SQLServerColumnEncryptionAzureKeyVaultProvider and uses ClientID and ClientKey values to retrieve Column Master Key from Azure Key Vault|
|New methods:<br /><br /> `public static void setColumnEncryptionTrustedMasterKeyPaths(Map<String, List\<String>> trustedKeyPaths)`<br /><br /> `public static void updateColumnEncryptionTrustedMasterKeyPaths(String server, List\<String> trustedKeyPaths)`<br /><br /> `public static void removeColumnEncryptionTrustedMasterKeyPaths(String server)`|Allows you to set/update/remove a list of trusted key paths for a database server. If while processing an application query the driver receives a key path that's not on the list, the query will fail. This property provides additional protection against security attacks that involve a compromised SQL Server sending fake key paths, which may lead to leaking key store credentials.|
|New method:<br /><br /> `public static Map<String, List\<String>> getColumnEncryptionTrustedMasterKeyPaths()`|Returns a list of trusted key paths for a database server.|
|New method:<br /><br /> `public static void registerColumnEncryptionKeyStoreProviders (Map\<String, SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders)`|Allows you to register custom key store providers. It's a dictionary that maps key store provider names to key store provider implementations.<br /><br /> To use the JVM key store, you need to instantiate a SQLServerColumnEncryptionJVMKeyStoreProvider object with JVM keystore credentials and register it with the driver. The name for this provider must be 'MSSQL_JVM_KEYSTORE'.<br /><br /> To use the Azure Key Vault store, you need to instantiate a SQLServerColumnEncryptionAzureKeyStoreProvider object and register it with the driver. The name for this provider must be 'AZURE_KEY_VAULT'.|
Expand Down

0 comments on commit 30cd74e

Please sign in to comment.