Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Always Encrypted tillåter klienter att kryptera känsliga data i klientprogram och aldrig avslöja krypteringsnycklarna för servern. En Always Encrypted-aktiverad drivrutin som är installerad på klientdatorn uppnår den här funktionen genom att automatiskt kryptera och dekryptera känsliga data i klientprogrammet.
Drivrutinen krypterar data i känsliga kolumner innan data skickas till SQL Server och skriver automatiskt om frågor för att bevara semantiken till programmet. På samma sätt dekrypterar drivrutinen transparent data som lagras i krypterade databaskolumner som finns i frågeresultat. Mer information finns i Always Encrypted (Databasmotor) och Använda Always Encrypted med JDBC-drivrutinen.
Anmärkning
Always Encrypted stöds endast av Microsoft JDBC Driver 6.0 eller senare för SQL Server med Azure SQL Database och SQL Server 2016 och senare.
Always Encrypted API-referenser
Det finns flera nya tillägg och ändringar i JDBC-drivrutins-API:et för användning i klientprogram som använder Always Encrypted.
SQLServerConnection-klass
| Namn | Description |
|---|---|
| Nyckelord för ny anslutningssträng: columnEncryptionInställning |
columnEncryptionSetting=Enabled aktiverar Always Encrypted-funktioner för anslutningen och kolumnenEncryptionSetting=Inaktiverad inaktiverar den. Godkända värden är aktiverade/inaktiverade. Standardvärdet är Inaktiverat. |
| Nyckelord för ny anslutningssträng:(MS JDBC 7.4 och senare) keyVaultProviderClientId keyVaultProviderClientKey |
keyVaultProviderClientId=<ClientID>; keyVaultProviderClientKey=<ClientKey> Registrerar SQLServerColumnEncryptionAzureKeyVaultProvider och använder ClientID- och ClientKey-värden för att hämta kolumnhuvudnyckeln från Azure Key Vault |
Nya metoder:public static void setColumnEncryptionTrustedMasterKeyPaths(Map<String, List\<String>> trustedKeyPaths)public static void updateColumnEncryptionTrustedMasterKeyPaths(String server, List\<String> trustedKeyPaths)public static void removeColumnEncryptionTrustedMasterKeyPaths(String server) |
Gör att du kan ange/uppdatera/ta bort en lista över betrodda nyckelsökvägar för en databasserver. Om drivrutinen under bearbetningen av en programfråga tar emot en nyckelsökväg som inte finns i listan misslyckas frågan. Den här egenskapen ger extra skydd mot säkerhetsattacker som innebär att en komprometterad server skickar falska nyckelsökvägar, vilket kan leda till läckande autentiseringsuppgifter för nyckelarkivet. |
Ny metod:public static Map<String, List\<String>> getColumnEncryptionTrustedMasterKeyPaths() |
Returnerar en lista över betrodda nyckelsökvägar för en databasserver. |
Ny metod:public static void registerColumnEncryptionKeyStoreProviders (Map\<String, SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders) |
Gör att du kan registrera anpassade nyckellagringsleverantörer. Det är ett uppslagsverk som mappar nyckellagringsleverantörsnamn till nyckellagringsleverantörsimplementationer. Om du vill använda JVM-nyckelarkivet måste du instansiera ett SQLServerColumnEncryptionJVMKeyStoreProvider-objekt med JVM-nyckelarkivautentiseringsuppgifter och registrera det med drivrutinen. Namnet på den här providern måste vara "MSSQL_JVM_KEYSTORE". Om du vill använda Azure Key Vault Store måste du instansiera ett SQLServerColumnEncryptionAzureKeyStoreProvider-objekt och registrera det med drivrutinen. Namnet på den här providern måste vara "AZURE_KEY_VAULT". |
Ny metod:public static void unregisterColumnEncryptionKeyStoreProviders (Map\<String, SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders) |
Gör att du kan avregistrera alla anpassade nyckellagerleverantörer genom att tömma ordboken som kopplar namn på nyckellagerleverantörer till nyckellagerleverantörernas implementationer. |
public final boolean getSendTimeAsDatetime() |
Returnerar inställningen för anslutningsegenskapen sendTimeAsDatetime. |
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) |
Ändrar inställningen för anslutningsegenskapen sendTimeAsDatetime. |
SQLServerConnectionPoolProxy-klass
| Namn | Description |
|---|---|
public final boolean getSendTimeAsDatetime() |
Returnerar inställningen för anslutningsegenskapen sendTimeAsDatetime. |
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) |
Ändrar inställningen för anslutningsegenskapen sendTimeAsDatetime. |
SQLServerDataSource-klass
| Namn | Description |
|---|---|
public void setColumnEncryptionSetting(String columnEncryptionSetting) |
Aktiverar/inaktiverar Always Encrypted-funktioner för datakällobjektet. Standardvärdet är Inaktiverat. |
public String getColumnEncryptionSetting() |
Hämtar inställningen Always Encrypted-funktioner för datakällans objekt. |
public void setKeyStoreAuthentication(String keyStoreAuthentication) |
Anger ett namn som identifierar ett nyckelarkiv. Det enda värde som stöds är JavaKeyStorePassword för att identifiera Java Key Store. Standardvärdet är null. |
public String getKeyStoreAuthentication() |
Hämtar värdet för inställningen keyStoreAuthentication för datakällans objekt. |
public void setKeyStoreSecret(String keyStoreSecret) |
Anger lösenordet för Java-nyckelarkivet. Lösenordet för nyckelarkivet och nyckeln måste vara desamma. keyStoreAuthentication måste anges med JavaKeyStorePassword. |
public void setKeyStoreLocation(String keyStoreLocation) |
Anger platsen, inklusive filnamnet för Java-nyckelarkivet. keyStoreAuthentication måste anges med JavaKeyStorePassword. |
public String getKeyStoreLocation() |
Hämtar keyStoreLocation för Java Key Store. |
SQLServerColumnEncryptionJavaKeyStoreProvider-klass
Implementeringen av nyckellagringsprovidern för Java Key Store. Den här klassen möjliggör användning av certifikat som lagras i Java-nyckelarkivet som kolumnhuvudnycklar.
Konstruktörer:
| Namn | Description |
|---|---|
public SQLServerColumnEncryptionJavaKeyStoreProvider (String keyStoreLocation, char[] keyStoreSecret) |
Nyckellagringsprovider för Java Key Store. |
Metoder:
| Namn | Description |
|---|---|
public byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) |
Dekrypterar det angivna krypterade värdet för en kolumnkrypteringsnyckel. Det krypterade värdet förväntas krypteras med hjälp av certifikatet med den angivna nyckelsökvägen och med den angivna algoritmen. Nyckelsökvägen ska vara i något av följande format: Fingeravtryck:<certificate_thumbprint> Alias:<certifikat_alias> (Åsidosätter SQLServerColumnEncryptionKeyStoreProvider. decryptColumnEncryptionKey(String, String, Byte[]).) |
public byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] plainTextColumnEncryptionKey) |
Krypterar en kolumnkrypteringsnyckel med hjälp av certifikatet med den angivna nyckelsökvägen och med den angivna algoritmen. Nyckelsökvägen ska vara i något av följande format: Tumavtryck:<certifikat_tummeavtryck> Alias:<certificate_alias> (Åsidosätter SQLServerColumnEncryptionKeyStoreProvider. encryptColumnEncryptionKey(String, String, Byte[]).) |
public boolean verifyColumnEncryptionKey (String masterKeyPath, boolean allowEnclaveComputations, byte[] signature) |
Verifierar signaturen för kolumnkrypteringsnyckeln med hjälp av certifikatet. Nyckelsökvägen ska vara i något av följande format: Fingeravtryck:<certifikat_fingeravtryck> Alias:<certifikat_alias> (Åsidosätter SQLServerColumnEncryptionKeyStoreProvider. verifyColumnEncryptionKey(String, boolean, Byte[]).) |
public void setName (String name) |
Ställer in namnet på den här nyckelbutiksprovidern. |
public String getName () |
Hämtar namnet på nyckellagringsleverantören. |
SQLServerColumnEncryptionAzureKeyVaultProvider-klass
Implementeringen av nyckellagringsprovidern för Azure Key Vault. Den här klassen möjliggör användning av nycklar som lagras i Azure Key Vault som kolumnhuvudnycklar.
Konstruktörer:
| Namn | Description |
|---|---|
public SQLServerColumnEncryptionAzureKeyVaultProvider () |
Konstruerar en SQLServerColumnEncryptionAzureKeyVaultProvider för att autentisera till Azure Key Vault. |
public SQLServerColumnEncryptionAzureKeyVaultProvider (String clientId) |
Konstruerar en SQLServerColumnEncryptionAzureKeyVaultProvider för att autentisera till Azure Key Vault med hjälp av identifieraren för klienten som begär token. |
public SQLServerColumnEncryptionAzureKeyVaultProvider (String clientId, String clientKey) |
Konstruerar en SQLServerColumnEncryptionAzureKeyVaultProvider för att autentisera till Azure Key Vault med hjälp av identifieraren och nyckeln för klienten som begär token. |
public SQLServerColumnEncryptionAzureKeyVaultProvider (TokenCredential tokenCredential) |
Konstruerar en SQLServerColumnEncryptionAzureKeyVaultProvider för att autentisera till Azure Key Vault med hjälp av tillhandahållna TokenCredential. |
Metoder:
| Namn | Description |
|---|---|
public byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) |
Dekrypterar en krypterad kolumnkrypteringsnyckel (CEK). Den här dekrypteringen utförs med en RSA-krypteringsalgoritm som använder den asymmetriska nyckel som anges av huvudnyckelsökvägen. (Åsidosätter SQLServerColumnEncryptionKeyStoreProvider. decryptColumnEncryptionKey(String, String, Byte[]).) |
public byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey) |
Krypterar en kolumnkrypteringsnyckel genom att ge den angivna kolumnhuvudnyckeln till den angivna algoritmen. (Åsidosätter SQLServerColumnEncryptionKeyStoreProvider. encryptColumnEncryptionKey(String, String, Byte[]).) |
public void setName (String name) |
Ställer in namnet på den här nyckelbutiksprovidern. |
public String getName () |
Hämtar namnet på nyckellagringsleverantören. |
SQLServerKeyVaultAuthenticationCallback-gränssnitt
Det här gränssnittet innehåller en metod för Azure Key Vault-autentisering, som ska implementeras av användaren.
Metoder:
| Namn | Description |
|---|---|
public String getAccessToken(String authority, String resource, String scope); |
Metoden måste åsidosättas. Metoden används för att hämta en åtkomsttoken till Azure Key Vault. |
SQLServerColumnEncryptionKeyStoreProvider-klass
Utöka den här klassen för att implementera en anpassad nyckellagringsprovider.
| Namn | Description |
|---|---|
| SQLServerColumnEncryptionKeyStoreProvider | Basklass för alla nyckellagringssystemleverantörer. En egen anpassad leverantör måste ärva från den här klassen och åsidosätta dess medlemsfunktioner och därefter registrera den via SQLServerConnection. registerColumnEncryptionKeyStoreProviders(). |
Metoder:
| Namn | Description |
|---|---|
public abstract byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte [] encryptedColumnEncryptionKey) |
Basklassmetod för dekryptering av det angivna krypterade värdet för en kolumnkrypteringsnyckel. Det krypterade värdet förväntas krypteras med hjälp av kolumnhuvudnyckeln med den angivna nyckelsökvägen och den angivna algoritmen. |
public abstract byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey) |
Basklassmetod för kryptering av en kolumnkrypteringsnyckel med hjälp av kolumnhuvudnyckeln med den angivna nyckelsökvägen och med hjälp av den angivna algoritmen. |
public abstract void setName(String name) |
Ställer in namnet på den här nyckelbutiksprovidern. |
public abstract String getName() |
Hämtar namnet på nyckellagringsleverantören. |
Nya eller överbelastade metoder i klassen SQLServerPreparedStatement
| Namn | Description |
|---|---|
public void setBigDecimal(int parameterIndex, BigDecimal x, int precision, int scale)public void setObject(int parameterIndex, Object x, int targetSqlType, Integer precision, int scale)public void setObject(int parameterIndex, Object x, SQLType targetSqlType, Integer precision, Integer scale)public void setTime(int parameterIndex, java.sql.Time x, int scale)public void setTimestamp(int parameterIndex, java.sql.Timestamp x, int scale) public void setDateTimeOffset(int parameterIndex, microsoft.sql.DateTimeOffset x, int scale) |
Dessa metoder överbelastas med ett precisions- eller skalningsargument eller båda för att stödja Always Encrypted för specifika datatyper som kräver precisions- och skalningsinformation. |
public void setMoney(int parameterIndex, BigDecimal x)public void setSmallMoney(int parameterIndex, BigDecimal x)public void setUniqueIdentifier(int parameterIndex, String guid)public void setDateTime(int parameterIndex, java.sql.Timestamp x)public void setSmallDateTime(int parameterIndex, java.sql.Timestamp x) |
Dessa metoder lägger till stöd för Always Encrypted för datatyperna money, smallmoney, uniqueidentifier, datetime och smalldatetime. Den befintliga setTimestamp() metoden används för att skicka parametervärden till kolumnen encrypted datetime2. För krypterade datetime- och smalldatetime-kolumner använder du de nya metoderna setDateTime() respektive setSmallDateTime() . |
public final void setBigDecimal(int parameterIndex, BigDecimal x, int precision, int scale, boolean forceEncrypt)public final void setMoney(int parameterIndex, BigDecimal x, boolean forceEncrypt)public final void setSmallMoney(int parameterIndex, BigDecimal x, boolean forceEncrypt)public final void setBoolean(int parameterIndex, boolean x, boolean forceEncrypt)public final void setByte(int parameterIndex, byte x, boolean forceEncrypt)public final void setBytes(int parameterIndex, byte x[], boolean forceEncrypt)public final void setUniqueIdentifier(int parameterIndex, String guid, boolean forceEncrypt)public final void setDouble(int parameterIndex, double x, boolean forceEncrypt)public final void setFloat(int parameterIndex, float x, boolean forceEncrypt)public final void setInt(int parameterIndex, int value, boolean forceEncrypt)public final void setLong(int parameterIndex, long x, boolean forceEncrypt)public final setObject(int parameterIndex, Object x, int targetSqlType, Integer precision, int scale, boolean forceEncrypt)public final void setObject(int parameterIndex, Object x, SQLType targetSqlType, Integer precision, Integer scale, boolean forceEncrypt)public final void setShort(int parameterIndex, short x, boolean forceEncrypt)public final void setString(int parameterIndex, String str, boolean forceEncrypt)public final void setNString(int parameterIndex, String value, boolean forceEncrypt)public final void setTime(int parameterIndex, java.sql.Time x, int scale, boolean forceEncrypt)public final void setTimestamp(int parameterIndex, java.sql.Timestamp x, int scale, boolean forceEncrypt)public final void setDateTimeOffset(int parameterIndex, microsoft.sql.DateTimeOffset x, int scale, boolean forceEncrypt)public final void setDateTime(int parameterIndex, java.sql.Timestamp x, boolean forceEncrypt)public final void setSmallDateTime(int parameterIndex, java.sql.Timestamp x, boolean forceEncrypt)public final void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal, boolean forceEncrypt)public final void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal, boolean forceEncrypt)public final void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal, boolean forceEncrypt) |
Anger den namngivna parametern till det angivna java-värdet. Om det booleska forceEncrypt värdet är inställt på true anges frågeparametern endast om den avsedda kolumnen är krypterad och Always Encrypted är aktiverad på anslutningen eller på -instruktionen.Om det booleska värdet forceEncrypt är inställt på false, kommer drivrutinen inte att tvinga kryptering på parametrar. |
Nya eller överbelastade metoder i KLASSEN SQLServerCallableStatement
| Namn | Description |
|---|---|
public void registerOutParameter(int parameterIndex, int sqlType, int precision, int scale)public void registerOutParameter(int parameterIndex, SQLType sqlType, int precision, int scale)public void registerOutParameter(String parameterName, int sqlType, int precision, int scale)public void registerOutParameter(String parameterName, SQLType sqlType, int precision, int scale)public void setBigDecimal(String parameterName, BigDecimal bd, int precision, int scale)public void setTime(String parameterName, java.sql.Time t, int scale)public void setTimestamp(String parameterName, java.sql.Timestamp t, int scale)public void setDateTimeOffset(String parameterName, microsoft.sql.DateTimeOffset t, int scale)public final void setObject(String sCol, Object x, int targetSqlType, Integer precision, int scale) |
Dessa metoder överbelastas med ett precisions- eller skalningsargument eller båda för att stödja Always Encrypted för specifika datatyper som kräver precisions- och skalningsinformation. |
public void setDateTime(String parameterName, java.sql.Timestamp x)public void setSmallDateTime(String parameterName, java.sql.Timestamp x)public void setUniqueIdentifier(String parameterName, String guid)public void setMoney(String parameterName, BigDecimal bd)public void setSmallMoney(String parameterName, BigDecimal bd)public Timestamp getDateTime(int index)public Timestamp getDateTime(String sCol)public Timestamp getDateTime(int index, Calendar cal)public Timestamp getSmallDateTime(int index)public Timestamp getSmallDateTime(String sCol)public Timestamp getSmallDateTime(int index, Calendar cal)public Timestamp getSmallDateTime(String name, Calendar cal)public BigDecimal getMoney(int index)public BigDecimal getMoney(String sCol)public BigDecimal getSmallMoney(int index)public BigDecimal getSmallMoney(String sCol) |
Dessa metoder lägger till stöd för Always Encrypted för datatyperna money, smallmoney, uniqueidentifier, datetime och smalldatetime. Den befintliga setTimestamp() metoden används för att skicka parametervärden till kolumnen encrypted datetime2. För krypterade datetime- och smalldatetime-kolumner använder du de nya metoderna setDateTime() respektive setSmallDateTime() . |
public void setObject(String parameterName, Object o, int n, int m, boolean forceEncrypt)public void setObject(String parameterName, Object obj, SQLType jdbcType, int scale, boolean forceEncrypt)public void setDate(String parameterName, java.sql.Date x, Calendar c, boolean forceEncrypt)public void setTime(String parameterName, java.sql.Time t, int scale, boolean forceEncrypt)public void setTime(String parameterName, java.sql.Time x, Calendar c, boolean forceEncrypt)public void setDateTime(String parameterName, java.sql.Timestamp x, boolean forceEncrypt)public void setDateTimeOffset(String parameterName, microsoft.sql.DateTimeOffset t, int scale, boolean forceEncrypt)public void setSmallDateTime(String parameterName, java.sql.Timestamp x, boolean forceEncrypt)public void setTimestamp(String parameterName, java.sql.Timestamp t, int scale, boolean forceEncrypt)public void setTimestamp(String parameterName, java.sql.Timestamp x, boolean forceEncrypt)public void setUniqueIdentifier(String parameterName, String guid, boolean forceEncrypt)public void setBytes(String parameterName, byte[] b, boolean forceEncrypt)public void setByte(String parameterName, byte b, boolean forceEncrypt)public void setString(String parameterName, String s, boolean forceEncrypt)public final void setNString(String parameterName, String value, boolean forceEncrypt)<br /><br /> public void setMoney(String parameterName, BigDecimal bd, boolean forceEncrypt)public void setSmallMoney(String parameterName, BigDecimal bd, boolean forceEncrypt)public void setBigDecimal(String parameterName, BigDecimal bd, int precision, int scale, boolean forceEncrypt)public void setDouble(String parameterName, double d, boolean forceEncrypt)public void setFloat(String parameterName, float f, boolean forceEncrypt)public void setInt(String parameterName, int i, boolean forceEncrypt)public void setLong(String parameterName, long l, boolean forceEncrypt)public void setShort(String parameterName, short s, boolean forceEncrypt)public void setBoolean(String parameterNames, boolean b, boolean forceEncrypt)public void setTimeStamp(String sCol, java.sql.Timestamp x, Calendar c, Boolean forceEncrypt) |
Anger den namngivna parametern till det angivna java-värdet. Om den booleska forceEncrypt är inställd på true anges frågeparametern endast om den avsedda kolumnen är krypterad och Always Encrypted är aktiverad på anslutningen eller på -instruktionen. Om den booleska forceEncrypt är inställd på false, tvingar drivrutinen inte kryptering av parametrar. |
Nya eller överbelastade metoder i klassen SQLServerResultSet
| Namn | Description |
|---|---|
public String getUniqueIdentifier(int columnIndex)public String getUniqueIdentifier(String columnLabel)public java.sql.Timestamp getDateTime(int columnIndex) public java.sql.Timestamp getDateTime(String columnName) public java.sql.Timestamp getDateTime(int columnIndex, Calendar cal) public java.sql.Timestamp getDateTime(String colName, Calendar cal) public java.sql.Timestamp getSmallDateTime(int columnIndex) public java.sql.Timestamp getSmallDateTime(String columnName) public java.sql.Timestamp getSmallDateTime(int columnIndex, Calendar cal) public java.sql.Timestamp getSmallDateTime(String colName, Calendar cal) public BigDecimal getMoney(int columnIndex) public BigDecimal getMoney(String columnName) public BigDecimal getSmallMoney(int columnIndex) public BigDecimal getSmallMoney(String columnName) public void updateMoney(String columnName, BigDecimal x) public void updateSmallMoney(String columnName, BigDecimal x) public void updateDateTime(int index, java.sql.Timestamp x) public void updateSmallDateTime(int index, java.sql.Timestamp x) |
Dessa metoder lägger till stöd för Always Encrypted för datatyperna pengar, smallmoney, uniqueidentifier, datetime och smalldatetime. Den befintliga updateTimestamp() metoden används för att uppdatera krypterade datetime2-kolumner. För krypterade datetime- och smalldatetime-kolumner använder du de nya metoderna updateDateTime() respektive updateSmallDateTime() . |
public void updateBoolean(int index, boolean x, boolean forceEncrypt) public void updateByte(int index, byte x, boolean forceEncrypt) public void updateShort(int index, short x, boolean forceEncrypt) public void updateInt(int index, int x, boolean forceEncrypt) public void updateLong(int index, long x, boolean forceEncrypt) public void updateFloat(int index, float x, boolean forceEncrypt) public void updateDouble(int index, double x, boolean forceEncrypt) public void updateMoney(int index, BigDecimal x, boolean forceEncrypt) public void updateMoney(String columnName, BigDecimal x, boolean forceEncrypt) public void updateSmallMoney(int index, BigDecimal x, boolean forceEncrypt) public void updateSmallMoney(String columnName, BigDecimal x, boolean forceEncrypt) public void updateBigDecimal(int index, BigDecimal x, Integer precision, Integer scale, boolean forceEncrypt) public void updateString(int columnIndex, String stringValue, boolean forceEncrypt) public void updateNString(int columnIndex, String nString, boolean forceEncrypt) public void updateNString(String columnLabel, String nString, boolean forceEncrypt) public void updateBytes(int index, byte x[], boolean forceEncrypt) <br/><br/> public void updateDate(int index, java.sql.Date x, boolean forceEncrypt) public void updateTime(int index, java.sql.Time x, Integer scale, boolean forceEncrypt) public void updateTimestamp(int index, java.sql.Timestamp x, int scale, boolean forceEncrypt) public void updateDateTime(int index, java.sql.Timestamp x, Integer scale, boolean forceEncrypt) public void updateSmallDateTime(int index, java.sql.Timestamp x, Integer scale, boolean forceEncrypt) public void updateDateTimeOffset(int index, microsoft.sql.DateTimeOffset x, Integer scale, boolean forceEncrypt) public void updateUniqueIdentifier(int index, String x, boolean forceEncrypt) public void updateObject(int index, Object x, int precision, int scale, boolean forceEncrypt) public void updateObject(int index, Object obj, SQLType targetSqlType, int scale, boolean forceEncrypt) public void updateBoolean(String columnName, boolean x, boolean forceEncrypt) public void updateByte(String columnName, byte x, boolean forceEncrypt) public void updateShort(String columnName, short x, boolean forceEncrypt) public void updateInt(String columnName, int x, boolean forceEncrypt) public void updateLong(String columnName, long x, boolean forceEncrypt) public void updateFloat(String columnName, float x, boolean forceEncrypt) public void updateDouble(String columnName, double x, boolean forceEncrypt) <br/><br/> public void updateBigDecimal(String columnName, BigDecimal x, boolean forceEncrypt) public void updateBigDecimal(String columnName, BigDecimal x, Integer precision, Integer scale, boolean forceEncrypt) public void updateString(String columnName, String x, boolean forceEncrypt) public void updateBytes(String columnName, byte x[], boolean forceEncrypt) public void updateDate(String columnName, java.sql.Date x, boolean forceEncrypt) public void updateTime(String columnName, java.sql.Time x, int scale, boolean forceEncrypt) public void updateTimestamp(String columnName, java.sql.Timestamp x, int scale, boolean forceEncrypt) public void updateDateTime(String columnName, java.sql.Timestamp x, int scale, boolean forceEncrypt) public void updateSmallDateTime(String columnName, java.sql.Timestamp x, int scale, boolean forceEncrypt) public void updateDateTimeOffset(String columnName, microsoft.sql.DateTimeOffset x, int scale, boolean forceEncrypt) public void updateUniqueIdentifier(String columnName, String x, boolean forceEncrypt)public void updateObject(String columnName, Object x, int precision, int scale, boolean forceEncrypt)public void updateObject(String columnName, Object obj, SQLType targetSqlType, int scale, boolean forceEncrypt) |
Uppdaterar den namngivna kolumnen till det angivna java-värdet. Om det booleska forceEncrypt värdet är inställt på true anges kolumnen endast om den är krypterad och Always Encrypted är aktiverad på anslutningen eller på -instruktionen.Om booleskt värde forceEncrypt är inställt på false framtvingar drivrutinen inte kryptering på parametrar. |
Nya typer i klassen microsoft.sql.Types
| Namn | Description |
|---|---|
| DATETIME, SMALLDATETIME, MONEY, SMALLMONEY, GUID | Använd dessa typer som sql-måltyper när du skickar parametervärden till krypterad datetime, smalldatetime, money, smallmoney, uniqueidentifier-kolumner med hjälp av setObject()/updateObject() API-metoder. |
SQLServerStatementColumnEncryptionSetting Enum
Anger hur data ska skickas och tas emot vid läsning och skrivning av krypterade kolumner. Beroende på din specifika fråga kan prestandapåverkan minskas genom att kringgå always encrypted-drivrutinens bearbetning när icke-krypterade kolumner används. De här inställningarna kan inte användas för att kringgå kryptering och få åtkomst till klartextdata.
Syntax:
Public enum SQLServerStatementColumnEncryptionSetting
Medlemmar:
| Namn | Description |
|---|---|
| Använd anslutningsinställning | Anger att kommandot som standard ska använda inställningen Always Encrypted i anslutningssträngen. |
| Enabled | Aktiverar Always Encrypted för frågan. |
| ResultSetOnly | Anger att endast resultatet av kommandot ska bearbetas av always encrypted-rutinen i drivrutinen. Använd det här värdet när kommandot inte har några parametrar som kräver kryptering. |
| Disabled | Inaktiverar Always Encrypted för frågan. |
Inställningen för instruktionsnivå för AE läggs till i klassen SQLServerConnection och till klassen SQLServerConnectionPoolProxy. Följande metoder i dessa klasser är överbelastade med den nya inställningen.
| Namn | Description |
|---|---|
public Statement createStatement(int nType, int nConcur, int statementHoldability, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) |
Skapar ett instruktionsobjekt som genererar ResultSet-objekt med den angivna inställningen typ, samtidighet, holdability och kolumnkryptering. |
public CallableStatement prepareCall(String sql, int nType, int nConcur, int statementHoldability, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) |
Skapar ett CallableStatement-objekt med den angivna kolumnkrypteringsinställningen som genererar ResultSet-objekt med den angivna typen, samtidighet och holdability. |
public PreparedStatement prepareStatement(String sql, int autogeneratedKeys, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) |
Skapar ett PreparedStatement-objekt med den angivna kolumnkrypteringsinställningen som har möjlighet att hämta automatiskt genererade nycklar. |
public PreparedStatement prepareStatement(String sql, String[] columnNames, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) |
Skapar ett PreparedStatement-objekt med den angivna kolumnkrypteringsinställningen som genererar ResultSet-objekt med de angivna kolumnnamnen. |
public PreparedStatement prepareStatement(String sql, int[] columnIndexes, SQLServerStatementColumnEncryptionSetting stmtColEncSetting |
Skapar ett PreparedStatement-objekt med den angivna kolumnkrypteringsinställningen som genererar ResultSet-objekt med de angivna kolumnindexen. |
public PreparedStatement prepareStatement(String sql, int nType, int nConcur, int nHold, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) |
Skapar ett PreparedStatement-objekt med den angivna kolumnkrypteringsinställningen som genererar ResultSet-objekt med den angivna typen, samtidighet och holdability. |
Anmärkning
Om Always Encrypted är inaktiverat för en fråga och frågan har parametrar som måste krypteras (parametrar som motsvarar krypterade kolumner) misslyckas frågan.
Om Always Encrypted är inaktiverat för en fråga och frågan returnerar resultat från krypterade kolumner returnerar frågan krypterade värden. De krypterade värdena har datatypen varbinary.