You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/connect/jdbc/always-encrypted-api-reference-for-the-jdbc-driver.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,16 +63,16 @@ manager: "jhubbard"
63
63
64
64
|Name|Description|
65
65
|----------|-----------------|
66
-
|public SQLServerColumnEncryptionJavaKeyStoreProvider(String keyStoreLocation, char[] keyStoreSecret)|Key store provider for the Java Key Store.|
66
+
|public SQLServerColumnEncryptionJavaKeyStoreProvider(String keyStoreLocation, char[] keyStoreSecret)|Key store provider for the Java Key Store.|
67
67
68
68
Methods
69
69
70
70
|Name|Description|
71
71
|----------|-----------------|
72
-
|public byte[] decryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey)|Decrypts the specified encrypted value of a column encryption key. The encrypted value is expected to be encrypted using the certificate with the specified key path and using the specified algorithm.<br /><br /> **The format of the key path should be one of the following:**<br /><br /> Thumbprint:<certificate_thumbprint><br /><br /> Alias:<certificate_alias><br /><br /> (Overrides SQLServerColumnEncryptionKeyStoreProvider.decryptColumnEncryptionKey(String, String, Byte[]).)|
73
-
|public byte[] encryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] plainTextColumnEncryptionKey)|Encrypts a column encryption key using the certificate with the specified key path and using the specified algorithm.<br /><br /> **The format of the key path should be one of the following:**<br /><br /> Thumbprint:<certificate_thumbprint><br /><br /> Alias:<certificate_alias><br /><br /> (Overrides SQLServerColumnEncryptionKeyStoreProvider.encryptColumnEncryptionKey(String, String, Byte[]).)|
74
-
|public void setName(String name)|Sets the name of this key store provider.|
75
-
|public String getName()|Gets the name of this key store provider.|
72
+
|public byte[] decryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey)|Decrypts the specified encrypted value of a column encryption key. The encrypted value is expected to be encrypted using the certificate with the specified key path and using the specified algorithm.<br /><br /> **The format of the key path should be one of the following:**<br /><br /> Thumbprint:<certificate_thumbprint><br /><br /> Alias:<certificate_alias><br /><br /> (Overrides SQLServerColumnEncryptionKeyStoreProvider.decryptColumnEncryptionKey(String, String, Byte[]).)|
73
+
|public byte[] encryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] plainTextColumnEncryptionKey)|Encrypts a column encryption key using the certificate with the specified key path and using the specified algorithm.<br /><br /> **The format of the key path should be one of the following:**<br /><br /> Thumbprint:<certificate_thumbprint><br /><br /> Alias:<certificate_alias><br /><br /> (Overrides SQLServerColumnEncryptionKeyStoreProvider.encryptColumnEncryptionKey(String, String, Byte[]).)|
74
+
|public void setName(String name)|Sets the name of this key store provider.|
75
+
|public String getName()|Gets the name of this key store provider.|
|public SQLServerColumnEncryptionAzureKeyVaultProvider(SQLServerKeyVaultAuthenticationCallback authenticationCallback, ExecutorService executorService)|Key store provider for Azure Key Vault. You need to provide an implementation for the SQLServerKeyVaultAuthenticationCallback interface to retrieve an access token for the key in Azure Key Vault.|
85
+
|public SQLServerColumnEncryptionAzureKeyVaultProvider(SQLServerKeyVaultAuthenticationCallback authenticationCallback, ExecutorService executorService)|Key store provider for Azure Key Vault. You need to provide an implementation for the SQLServerKeyVaultAuthenticationCallback interface to retrieve an access token for the key in Azure Key Vault.|
86
86
87
87
Methods
88
88
89
89
|Name|Description|
90
90
|----------|-----------------|
91
-
|public byte[] decryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey)|Decrypts the specified encrypted value of a column encryption key. The encrypted value is expected to be encrypted using the specified column key IDmaster key and using the specified algorithm. <br />(Overrides SQLServerColumnEncryptionKeyStoreProvider.decryptColumnEncryptionKey(String, String, Byte[]).)|
92
-
|public byte[] encryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey)|Encrypts a column encryption key using the specified column master key and using the specified algorithm. <br />(Overrides SQLServerColumnEncryptionKeyStoreProvider.encryptColumnEncryptionKey(String, String, Byte[]).)|
93
-
|public void setName(String name)|Sets the name of this key store provider.|
94
-
|public String getName()|Gets the name of this key store provider.|
91
+
|public byte[] decryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey)|Decrypts the specified encrypted value of a column encryption key. The encrypted value is expected to be encrypted using the specified column key IDmaster key and using the specified algorithm. <br />(Overrides SQLServerColumnEncryptionKeyStoreProvider.decryptColumnEncryptionKey(String, String, Byte[]).)|
92
+
|public byte[] encryptColumnEncryptionKey(String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey)|Encrypts a column encryption key using the specified column master key and using the specified algorithm. <br />(Overrides SQLServerColumnEncryptionKeyStoreProvider.encryptColumnEncryptionKey(String, String, Byte[]).)|
93
+
|public void setName(String name)|Sets the name of this key store provider.|
94
+
|public String getName()|Gets the name of this key store provider.|
|SQLServerColumnEncryptionKeyStoreProvider|Base class for all key store providers. A custom provider must derive from this class and override its member functions and then register it using SQLServerConnection.registerColumnEncryptionKeyStoreProviders().|
113
+
|SQLServerColumnEncryptionKeyStoreProvider|Base class for all key store providers. A custom provider must derive from this class and override its member functions and then register it using SQLServerConnection.registerColumnEncryptionKeyStoreProviders().|
Copy file name to clipboardExpand all lines: docs/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix.md
+12-13Lines changed: 12 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,19 +49,18 @@ manager: "jhubbard"
49
49
50
50
## SQL Version Compatibility
51
51
52
-
|||||||||||
53
-
|-|-|-|-|-|-|-|-|-|-|
54
-
|Driver Version|SQL Server 2000|SQL Server 2005|SQL Server 2008|SQL Server 2008R2|SQL Server 2012|Azure SQL Database|PDW 2008R2 AU3<sup>4</sup>|SQL Server 2014|SQL Server 2016|
The following sections document how the [!INCLUDE[jdbcNoVersion](../../includes/jdbcnoversion_md.md)] provides support for the Java Platform, Enterprise Edition (Java EE) and JDBC 3.0 optional API features. The source code examples provided in this Help system provide a good reference for getting started with these features.
22
22
23
23
First, make sure that your Java environment (JDK, JRE) includes the javax.sql package. This is a required package for any JDBC application that uses the optional API. JDK 1.5 and later versions already contain this package, so you do not have to install it separately.
@@ -33,11 +33,11 @@ manager: "jhubbard"
33
33
### Datasource Names
34
34
You can make database connections by using data sources. The data sources available with JDBC driver are described in the following table:
|DataSource|com.microsoft.sqlserver.jdbc.SQLServerDataSource|The non pooling data source.|
39
-
|ConnectionPoolDataSource|com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource|The data source to configure JAVA EE application server connection pools. Typically used when the application runs within a JAVA EE application server.|
40
-
|XADataSource|com.microsoft.sqlserver.jdbc.SQLServerXADataSource|The data source to configure JAVA EE XA data sources. Typically used when the application runs within a JAVA EE application server and an XA transaction manager.|
36
+
|DataSource Type|Class Name and Description|
37
+
|---------------|--------------------------|
38
+
|DataSource|com.microsoft.sqlserver.jdbc.SQLServerDataSource <br/> <br/> The non pooling data source.|
39
+
|ConnectionPoolDataSource|com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource <br/> <br/> The data source to configure JAVA EE application server connection pools. Typically used when the application runs within a JAVA EE application server.|
40
+
|XADataSource|com.microsoft.sqlserver.jdbc.SQLServerXADataSource <br/> <br/> The data source to configure JAVA EE XA data sources. Typically used when the application runs within a JAVA EE application server and an XA transaction manager.|
41
41
42
42
### Data Source Properties
43
43
All data sources support the ability to set and get any property that is associated with the underlying driver's property set.
The [!INCLUDE[jdbcNoVersion](../../includes/jdbcnoversion_md.md)] provides support for Java Platform, Enterprise Edition (Java EE) connection pooling. The JDBC driver implements the JDBC 3.0 required interfaces to enable the driver to participate in any connection-pooling implementation that is provided by middleware vendors and is JDBC 3.0-compliant. Middleware such as Java EE application servers frequently provides compliant connection-pooling facilities. The JDBC driver will participate in pooled connections in these environments.
22
22
23
23
> [!NOTE]
@@ -28,8 +28,8 @@ manager: "jhubbard"
28
28
29
29
|Class|Implements|Description|
30
30
|-----------|----------------|-----------------|
31
-
|com.microsoft.sqlserver.jdbc.SQLServerXADataSource|javax.sql.ConnectionPoolDataSource and javax.sql.XADataSource|We recommend that you use the [SQLServerXADataSource](../../connect/jdbc/reference/sqlserverxadatasource-class.md) class for all your Java EE server needs, because it implements all the JDBC 3.0 pooling and XA interfaces.|
32
-
|com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource|javax.sql.ConnectionPoolDataSource|This class is a connection factory that enables the Java EE application server to populate its connection pool with physical connections. If the configuration of your Java EE vendor requires a class that implements javax.sql.ConnectionPoolDataSource, specify the class name as [SQLServerConnectionPoolDataSource](../../connect/jdbc/reference/sqlserverconnectionpooldatasource-class.md). We generally recommend that you use the [SQLServerXADataSource](../../connect/jdbc/reference/sqlserverxadatasource-class.md) class instead, because it implements both pooling and XA interfaces, and has been verified in more Java EE server configurations.|
31
+
|com.microsoft.sqlserver.jdbc.SQLServerXADataSource|javax.sql.ConnectionPoolDataSource and javax.sql.XADataSource|We recommend that you use the [SQLServerXADataSource](../../connect/jdbc/reference/sqlserverxadatasource-class.md) class for all your Java EE server needs, because it implements all the JDBC 3.0 pooling and XA interfaces.|
32
+
|com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource|javax.sql.ConnectionPoolDataSource|This class is a connection factory that enables the Java EE application server to populate its connection pool with physical connections. If the configuration of your Java EE vendor requires a class that implements javax.sql.ConnectionPoolDataSource, specify the class name as [SQLServerConnectionPoolDataSource](../../connect/jdbc/reference/sqlserverconnectionpooldatasource-class.md). We generally recommend that you use the [SQLServerXADataSource](../../connect/jdbc/reference/sqlserverxadatasource-class.md) class instead, because it implements both pooling and XA interfaces, and has been verified in more Java EE server configurations.|
33
33
34
34
JDBC application code should always close connections explicitly to derive the most benefit from pooling. When the application explicitly closes a connection, the pooling implementation can reuse the connection immediately. If the connection is not closed, other applications cannot reuse it. Applications can use the `finally` construct to make sure that pooled connections are closed even if an exception occurs.
0 commit comments