Aracılığıyla paylaş


JDBC sürücüsü için Always Encrypted API başvurusu

JDBC sürücüsünü indirin

Always Encrypted, istemcilerin istemci uygulamaları içindeki hassas verileri şifrelemesine ve şifreleme anahtarlarını hiçbir zaman sunucuya göstermesine olanak tanır. İstemci bilgisayarda yüklü Always Encrypted özellikli bir sürücü, istemci uygulamasındaki hassas verileri otomatik olarak şifreleyerek ve şifresini çözerek bu işlevselliği elde eder.

Sürücü, verileri SQL Server'a geçirmeden önce hassas sütunlardaki verileri şifreler ve semantiği uygulamaya korumak için sorguları otomatik olarak yeniden yazar. Benzer şekilde, sürücü sorgu sonuçlarında yer alan şifrelenmiş veritabanı sütunlarında depolanan verilerin şifresini saydam bir şekilde çözer. Daha fazla bilgi için bkz . Always Encrypted (Veritabanı Altyapısı) ve JDBC Sürücüsü ile Always Encrypted Kullanma.

Uyarı

Always Encrypted yalnızca Azure SQL Veritabanı ve SQL Server 2016 ve üzeri sürümlere sahip SQL Server için Microsoft JDBC Driver 6.0 veya üzeri tarafından desteklenir.

Always Encrypted API referansları

Always Encrypted kullanan istemci uygulamalarında kullanılmak üzere JDBC sürücü API'sinde birkaç yeni ekleme ve değişiklik vardır.

SQLServerConnection sınıfı

İsim Description
Yeni bağlantı dizesi anahtar sözcüğü:

sütunŞifrelemeAyarı
columnEncryptionSetting=Enabled, bağlantı için Always Encrypted işlevselliğini etkinleştirir ve columnEncryptionSetting=Disabled bunu devre dışı bırakır. Kabul edilen değerler Etkin veya Devre Dışıdır. Varsayılan değer Devre Dışı'dır.
Yeni bağlantı dizesi anahtar sözcüğü:(MS JDBC 7.4 ve üzeri)

keyVaultProviderClientId

keyVaultProviderClientKey
keyVaultProviderClientId=<ClientID>; keyVaultProviderClientKey=<ClientKey>

SQLServerColumnEncryptionAzureKeyVaultProvider'ı kaydeder ve Azure Key Vault'tan Sütun Ana Anahtarı almak için ClientID ve ClientKey değerlerini kullanır
Yeni yöntemler:

public static void setColumnEncryptionTrustedMasterKeyPaths(Map<String, List\<String>> trustedKeyPaths)

public static void updateColumnEncryptionTrustedMasterKeyPaths(String server, List\<String> trustedKeyPaths)

public static void removeColumnEncryptionTrustedMasterKeyPaths(String server)
Veritabanı sunucusu için güvenilen anahtar yollarının listesini ayarlamanıza/güncelleştirmenize/kaldırmanıza olanak tanır. Bir uygulama sorgusu işlenirken sürücü listede olmayan bir anahtar yolu alırsa, sorgu başarısız olur. Bu özellik, güvenliği aşılmış bir sunucunun sahte anahtar yolları göndermesini içeren güvenlik saldırılarına karşı ek koruma sağlar ve bu da anahtar deposu kimlik bilgilerinin sızmasına neden olabilir.
Yeni yöntem:

public static Map<String, List\<String>> getColumnEncryptionTrustedMasterKeyPaths()
Veritabanı sunucusu için güvenilen anahtar yollarının listesini döndürür.
Yeni yöntem:

public static void registerColumnEncryptionKeyStoreProviders (Map\<String, SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders)
Özel anahtar deposu sağlayıcılarını kaydetmenizi sağlar. Anahtar deposu sağlayıcı adlarını anahtar deposu sağlayıcı uygulamalarıyla eşleyen bir sözlüktür.

JVM anahtar deposunu kullanmak için JVM anahtar deposu kimlik bilgileriyle bir SQLServerColumnEncryptionJVMKeyStoreProvider nesnesi örneği oluşturmanız ve bunu sürücüye kaydetmeniz gerekir. Bu sağlayıcının adı 'MSSQL_JVM_KEYSTORE' olmalıdır.

Azure Key Vault deposunu kullanmak için bir SQLServerColumnEncryptionAzureKeyStoreProvider nesnesi örneği oluşturup sürücüye kaydetmeniz gerekir. Bu sağlayıcının adı 'AZURE_KEY_VAULT' olmalıdır.
Yeni yöntem:

public static void unregisterColumnEncryptionKeyStoreProviders (Map\<String, SQLServerColumnEncryptionKeyStoreProvider> clientKeyStoreProviders)
Anahtar deposu sağlayıcı adlarını anahtar deposu sağlayıcı uygulamalarıyla eşleyen sözlüğü temizleyerek tüm özel anahtar deposu sağlayıcılarının kaydını silmenize olanak tanır.
public final boolean getSendTimeAsDatetime() sendTimeAsDatetime bağlantı özelliğinin ayarını döndürür.
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) sendTimeAsDatetime bağlantı özelliğinin ayarını değiştirir.

SQLServerConnectionPoolProxy sınıfı

İsim Description
public final boolean getSendTimeAsDatetime() sendTimeAsDatetime bağlantı özelliğinin ayarını döndürür.
public void setSendTimeAsDatetime(boolean sendTimeAsDateTimeValue) sendTimeAsDatetime bağlantı özelliğinin ayarını değiştirir.

SQLServerDataSource sınıfı

İsim Description
public void setColumnEncryptionSetting(String columnEncryptionSetting) Veri kaynağı nesnesi için Always Encrypted işlevini etkinleştirir/devre dışı bırakır.

Varsayılan değer Devre Dışı'dır.
public String getColumnEncryptionSetting() Veri kaynağı nesnesi için Always Encrypted işlevsellik ayarını alır.
public void setKeyStoreAuthentication(String keyStoreAuthentication) Bir anahtar depoyu tanımlayan adı ayarlar. Java Key Store'u tanımlamak için javaKeyStorePassword yalnızca desteklenen değerdir.

Varsayılan değer null'tır.
public String getKeyStoreAuthentication() Veri kaynağı nesnesi için keyStoreAuthentication ayarının değerini alır.
public void setKeyStoreSecret(String keyStoreSecret) Java anahtar deposunun parolasını ayarlar. Anahtar deposu ve anahtarın parolası aynı olmalıdır. keyStoreAuthentication , JavaKeyStorePassword ile ayarlanmalıdır.
public void setKeyStoreLocation(String keyStoreLocation) Java anahtar deposunun dosya adını içeren konumu ayarlar. keyStoreAuthentication , JavaKeyStorePassword ile ayarlanmalıdır.
public String getKeyStoreLocation() Java Anahtar Deposu için keyStoreLocation değerini alır.

SQLServerColumnEncryptionJavaKeyStoreProvider sınıfı

Java Anahtar Deposu için anahtar deposu sağlayıcısının uygulanması. Bu sınıf, Java anahtar deposunda depolanan sertifikaların sütun ana anahtarları olarak kullanılmasını sağlar.

Yapıcılar:

İsim Description
public SQLServerColumnEncryptionJavaKeyStoreProvider (String keyStoreLocation, char[] keyStoreSecret) Java Anahtar Deposu için anahtar deposu sağlayıcısı.

Yöntemler:

İsim Description
public byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) Bir sütun şifreleme anahtarının belirtilen şifrelenmiş değerinin şifresini çözer. Şifrelenmiş değerin belirtilen anahtar yolu ile sertifika kullanılarak ve belirtilen algoritma kullanılarak şifrelenmeleri beklenir.

Anahtar yolu aşağıdaki biçimlerden birinde olmalıdır:

Parmak İzi:<certificate_thumbprint>

Diğer Ad:<certificate_alias>

(Geçersiz kılmalar SQLServerColumnEncryptionKeyStoreProvider. decryptColumnEncryptionKey(String, String, Byte[]).)
public byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] plainTextColumnEncryptionKey) Belirtilen anahtar yolu ile sertifikayı kullanarak ve belirtilen algoritmayı kullanarak bir sütun şifreleme anahtarını şifreler.

Anahtar yolu aşağıdaki biçimlerden birinde olmalıdır:

Parmak İzi:<certificate_thumbprint>

Diğer Ad:<certificate_alias>

(Geçersiz kılmalar SQLServerColumnEncryptionKeyStoreProvider). encryptColumnEncryptionKey(Dize, Dize, Bayt[]).)
public boolean verifyColumnEncryptionKey (String masterKeyPath, boolean allowEnclaveComputations, byte[] signature) Sertifikayı kullanarak sütun şifreleme anahtarının imzasını doğrular.

Anahtar yolu aşağıdaki biçimlerden birinde olmalıdır:

Parmak İzi: <certificate_thumbprint>

Diğer Ad:<certificate_alias>

(Geçersiz kılmalar SQLServerColumnEncryptionKeyStoreProvider. verifyColumnEncryptionKey(String, boolean, Byte[]).)
public void setName (String name) Bu anahtar deposu sağlayıcısının adını ayarlar.
public String getName () Bu anahtar deposu sağlayıcısının adını alır.

SQLServerColumnEncryptionAzureKeyVaultProvider sınıfı

Azure Key Vault için anahtar deposu sağlayıcısının uygulanması. Bu sınıf, Azure Key Vault'ta depolanan anahtarların sütun ana anahtarları olarak kullanılmasını sağlar.

Yapıcılar:

İsim Description
public SQLServerColumnEncryptionAzureKeyVaultProvider () Azure Key Vault'ta kimlik doğrulaması yapmak için bir SQLServerColumnEncryptionAzureKeyVaultProvider oluşturur.
public SQLServerColumnEncryptionAzureKeyVaultProvider (String clientId) Belirteci isteyen istemcinin tanımlayıcısını kullanarak Azure Key Vault'ta kimlik doğrulaması yapmak için bir SQLServerColumnEncryptionAzureKeyVaultProvider oluşturur.
public SQLServerColumnEncryptionAzureKeyVaultProvider (String clientId, String clientKey) Belirteci isteyen istemcinin tanımlayıcısını ve anahtarını kullanarak Azure Key Vault'ta kimlik doğrulaması yapmak için bir SQLServerColumnEncryptionAzureKeyVaultProvider oluşturur.
public SQLServerColumnEncryptionAzureKeyVaultProvider (TokenCredential tokenCredential) Sağlanan TokenCredential kullanarak Azure Key Vault'ta kimlik doğrulaması yapmak için bir SQLServerColumnEncryptionAzureKeyVaultProvider oluşturur.

Yöntemler:

İsim Description
public byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] encryptedColumnEncryptionKey) Şifrelenmiş sütun şifreleme anahtarının (CEK) şifresini çözer. Bu şifre çözme işlemi, ana anahtar yolu tarafından belirtilen asimetrik anahtarı kullanan bir RSA şifreleme algoritmasıyla gerçekleştirilir.
(Geçersiz kılma SQLServerColumnEncryptionKeyStoreProvider. decryptColumnEncryptionKey(Dize, Dize, Bayt[]).)
public byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey) Belirtilen sütun ana anahtarını belirtilen algoritmaya vererek bir sütun şifreleme anahtarını şifreler.
(Geçersiz kılma SQLServerColumnEncryptionKeyStoreProvider. encryptColumnEncryptionKey(Dize, Dize, Bayt[]).)
public void setName (String name) Bu anahtar deposu sağlayıcısının adını ayarlar.
public String getName () Bu anahtar deposu sağlayıcısının adını alır.

SQLServerKeyVaultAuthenticationCallback arabirimi

Bu arabirim, kullanıcı tarafından uygulanacak Azure Key Vault kimlik doğrulaması için bir yöntem içerir.

Yöntemler:

İsim Description
public String getAccessToken(String authority, String resource, String scope); yöntemi geçersiz kılınmalıdır. yöntemi, Azure Key Vault'a erişim belirteci almak için kullanılır.

SQLServerColumnEncryptionKeyStoreProvider sınıfı

Özel anahtar deposu sağlayıcısı uygulamak için bu sınıfı genişletin.

İsim Description
SQLServerColumnEncryptionKeyStoreProvider Tüm anahtar deposu sağlayıcıları için temel sınıf. Özel sağlayıcı, bu sınıftan türetilmeli, üye işlevlerini geçersiz kılmalı ve sonrasında SQLServerConnection kullanarak kaydedilmelidir. registerColumnEncryptionKeyStoreProviders() fonksiyonunu kaydet.

Yöntemler:

İsim Description
public abstract byte[] decryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte [] encryptedColumnEncryptionKey) Bir sütun şifreleme anahtarının belirtilen şifrelenmiş değerinin şifresini çözmek için temel sınıf yöntemi. Şifrelenmiş değerin, belirtilen anahtar yolu ve belirtilen algoritma ile sütun ana anahtarı kullanılarak şifrelenmeleri beklenir.
public abstract byte[] encryptColumnEncryptionKey (String masterKeyPath, String encryptionAlgorithm, byte[] columnEncryptionKey) Belirtilen anahtar yolu ile sütun ana anahtarını kullanarak ve belirtilen algoritmayı kullanarak bir sütun şifreleme anahtarını şifrelemek için temel sınıf yöntemi.
public abstract void setName(String name) Bu anahtar deposu sağlayıcısının adını ayarlar.
public abstract String getName() Bu anahtar deposu sağlayıcısının adını alır.

SQLServerPreparedStatement sınıfında yeni veya aşırı yüklenmiş yöntemler

İsim 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)
Bu yöntemler, duyarlık veya ölçek bağımsız değişkeniyle aşırı yüklenir ya da her ikisi de duyarlık ve ölçek bilgileri gerektiren belirli veri türleri için Always Encrypted'ı destekler.
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)
Bu yöntemler money, smallmoney, uniqueidentifier, datetime ve smalldatetime veri türleri için Always Encrypted desteği ekler.

Mevcut setTimestamp() yöntem, parametre değerlerini şifrelenmiş datetime2 sütununa göndermek için kullanılır. Şifrelenmiş datetime ve smalldatetime sütunları için sırasıyla yeni yöntemleri setDateTime() ve setSmallDateTime() kullanın.
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)
Adlandırılmış parametreyi verilen java değerine ayarlar.

Boole değeri forceEncrypt true olarak ayarlanırsa, sorgu parametresi yalnızca belirlenen sütun şifrelenirse ve Always Encrypted bağlantıda veya deyimde etkinleştirilirse ayarlanır.

Boole forceEncrypt değeri false olarak ayarlanırsa, sürücü parametrelerde şifrelemeyi zorlamaz.

SQLServerCallableStatement sınıfında yeni veya aşırı yüklenmiş yöntemler

İsim 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)
Bu yöntemler, duyarlık veya ölçek bağımsız değişkeniyle aşırı yüklenir ya da her ikisi de duyarlık ve ölçek bilgileri gerektiren belirli veri türleri için Always Encrypted'ı destekler.
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)
Bu yöntemler money, smallmoney, uniqueidentifier, datetime ve smalldatetime veri türleri için Always Encrypted desteği ekler.

Mevcut setTimestamp() yöntem, parametre değerlerini şifrelenmiş datetime2 sütununa göndermek için kullanılır. Şifrelenmiş datetime ve smalldatetime sütunları için sırasıyla yeni yöntemleri setDateTime() ve setSmallDateTime() kullanın.
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)
Adlandırılmış parametreyi verilen java değerine ayarlar.

Boolean forceEncrypt değeri true olarak ayarlanırsa, sorgu parametresi yalnızca belirlenen sütun şifrelenmişse ve Always Encrypted bağlantıda veya deyimde etkinse ayarlanır.

Boole forceEncrypt değeri false olarak ayarlanırsa, sürücü parametrelerde şifrelemeyi zorlamaz.

SQLServerResultSet sınıfında yeni veya aşırı yüklenmiş yöntemler

İsim 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)
Bu yöntemler para, smallmoney, uniqueidentifier, datetime ve smalldatetime veri türleri için Always Encrypted desteği ekler.

Mevcut updateTimestamp() yöntem şifrelenmiş datetime2 sütunlarını güncelleştirmek için kullanılır. Şifrelenmiş datetime ve smalldatetime sütunları için sırasıyla yeni yöntemleri updateDateTime() ve updateSmallDateTime() kullanın.
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)
Adlandırılmış sütunu verilen java değerine güncelleştirir.

Boole değeri forceEncrypt true olarak ayarlanırsa, sütun yalnızca şifreliyse ve Always Encrypted bağlantıda veya deyimde etkinse ayarlanacaktır.

Boole değeri forceEncrypt false olarak ayarlanırsa, sürücü parametrelerde şifrelemeyi zorlamaz.

microsoft.sql.Types sınıfında yeni türler

İsim Description
DATETIME, SMALLDATETIME, MONEY, SMALLMONEY, GUID API yöntemlerini kullanarak setObject()/updateObject() datetime, smalldatetime, money, smallmoney, uniqueidentifier sütunlarına parametre değerleri gönderirken bu türleri hedef SQL türleri olarak kullanın.

SQLServerStatementColumnEncryptionSetting Sabit Listesi

Şifrelenmiş sütunları okurken ve yazarken verilerin nasıl gönderileceğini ve alınacağını belirtir. Belirli sorgunuza bağlı olarak, şifrelenmemiş sütunlar kullanılırken Always Encrypted sürücüsünün işlemesi atlanarak performans etkisi azaltılabilir. Bu ayarlar şifrelemeyi atlamak ve düz metin verilerine erişim kazanmak için kullanılamaz.

Syntax:

Public enum  SQLServerStatementColumnEncryptionSetting

Üyeler:

İsim Description
BağlantıAyarıKullan Komutun bağlantı dizesindeki Always Encrypted ayarına varsayılan olarak ayarlanması gerektiğini belirtir.
Etkinleştirildi Sorgu için Always Encrypted'i etkinleştirir.
ResultSetOnly Yalnızca komutun sonuçlarının sürücüdeki Always Encrypted yordamı tarafından işlenmesi gerektiğini belirtir. Komutun şifreleme gerektiren parametreleri olmadığında bu değeri kullanın.
Disabled Sorgu için Always Encrypted'ı devre dışı bırakır.

AE için deyim düzeyi ayarı SQLServerConnection sınıfına ve SQLServerConnectionPoolProxy sınıfına eklenir. Bu sınıflardaki aşağıdaki yöntemler yeni ayar ile aşırı yüklenmiştir.

İsim Description
public Statement createStatement(int nType, int nConcur, int statementHoldability, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) Verilen tür, eşzamanlılık, tutunabilirlik ve sütun şifreleme ayarıyla ResultSet nesneleri oluşturacak bir Statement nesnesi oluşturur.
public CallableStatement prepareCall(String sql, int nType, int nConcur, int statementHoldability, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) Verilen sütun şifreleme ayarına sahip, belirtilen tür, eşzamanlılık ve tutunabilirlik ile ResultSet nesneleri üretecek bir CallableStatement nesnesi oluşturur.
public PreparedStatement prepareStatement(String sql, int autogeneratedKeys, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) Otomatik olarak oluşturulan anahtarları alma özelliğine sahip belirtilen sütun şifreleme ayarına sahip bir PreparedStatement nesnesi oluşturur.
public PreparedStatement prepareStatement(String sql, String[] columnNames, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) Verilen sütun şifreleme ayarıyla, belirtilen sütun adlarıyla ResultSet nesneleri oluşturacak bir PreparedStatement nesnesi oluşturur.
public PreparedStatement prepareStatement(String sql, int[] columnIndexes, SQLServerStatementColumnEncryptionSetting stmtColEncSetting Belirtilen sütun şifreleme ayarına sahip ve verilen sütun dizinleriyle ResultSet nesneleri oluşturacak bir PreparedStatement nesnesi oluşturur.
public PreparedStatement prepareStatement(String sql, int nType, int nConcur, int nHold, SQLServerStatementColumnEncryptionSetting stmtColEncSetting) Verilen sütun şifreleme ayarına sahip, verilen tür, eşzamanlılık ve tutunabilirlik ile ResultSet nesneleri üretecek bir PreparedStatement nesnesi oluşturur.

Uyarı

Always Encrypted bir sorgu için devre dışı bırakılırsa ve sorgunun şifrelenmesini gerektiren parametreleri varsa (şifrelenmiş sütunlara karşılık gelen parametreler), sorgu başarısız olur.

Always Encrypted bir sorgu için devre dışı bırakılırsa ve sorgu şifrelenmiş sütunlardan sonuçlar döndürürse, sorgu şifrelenmiş değerler döndürür. Şifrelenmiş değerler, varbinary veri türüne sahip olur.

Ayrıca bakınız

JDBC sürücüsüyle Always Encrypted kullanma