Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Geçerli veritabanında belirtilen şemaya bağlı olmayan saklı yordamın, kullanıcı tanımlı işlevin, görünümün, DML tetikleyicisinin, veritabanı düzeyinde DDL tetikleyicisinin veya sunucu düzeyinde DDL tetikleyicisinin parametreleri için Always Encrypted meta verilerini güncelleştirir.
Transact-SQL söz dizimi kuralları
sp_refresh_parameter_encryption
[ @name = ] N'name'
[ , [ @namespace = ] { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER } ]
[ ; ]
Arguments
[ @name = ] ‘name’
Saklı yordamın adı, kullanıcı tanımlı işlev, görünüm, DML tetikleyicisi, veritabanı düzeyinde DDL tetikleyicisi veya sunucu düzeyinde DDL tetikleyicisi. @namenvarchar(776) şeklindedir ve varsayılan değer yoktur. @name ortak dil çalışma zamanı (CLR) saklı yordamı veya CLR işlevi olamaz. @name şemaya bağlı olamaz. @name çok parçalı bir tanımlayıcı olabilir, ancak yalnızca geçerli veritabanındaki nesnelere başvurabilir.
[ @namespace = ] N'namespace'
Belirtilen modülün sınıfı.
@namespacevarsayılan değeri nvarchar(20)'dir OBJECT.
@name bir DDL tetikleyicisi olduğunda @namespace gerekir. Geçerli girişler DATABASE_DDL_TRIGGER ve SERVER_DDL_TRIGGER'dir.
Dönüş kodu değerleri
0 (başarı) veya sıfır olmayan bir sayı (hata).
Açıklamalar
Bir modülün parametreleri için şifreleme meta verileri, aşağıdakiler durumunda eski olabilir:
Bir tablodaki modülün başvurmuş olduğu bir sütunun şifreleme özellikleri güncelleştirildi. Örneğin, bir sütun kaldırıldı ve aynı ada ancak farklı bir şifreleme türüne, şifreleme anahtarına veya şifreleme algoritmasına sahip yeni bir sütun eklendi.
Modül, eski parametre şifreleme meta verilerine sahip başka bir modüle başvurur.
Tablonun şifreleme özellikleri değiştirildiğinde, sp_refresh_parameter_encryption tabloya doğrudan veya dolaylı olarak başvuran tüm modüller için çalıştırılmalıdır. Bu saklı yordam, kullanıcının çağıranlara geçmeden önce iç modülü yenilemesine gerek kalmadan bu modüllerde herhangi bir sırayla çağrılabilir.
sp_refresh_parameter_encryption nesneyle ilişkili izinleri, genişletilmiş özellikleri veya SET seçenekleri etkilemez.
Sunucu düzeyinde bir DDL tetikleyicisini yenilemek için bu saklı yordamı herhangi bir veritabanının bağlamında yürütebilirsiniz.
Uyarı
Herhangi bir nesneyle ilişkilendirilmiş imzalar, sp_refresh_parameter_encryption çalıştırıldığında silinir.
Permissions
Modül üzerinde ALTER izni ve nesne tarafından başvurulan CLR kullanıcı tanımlı türler ve XML şema koleksiyonları üzerinde REFERENCES izni gerektirir.
Belirtilen modül veritabanı düzeyinde bir DDL tetikleyicisi olduğunda geçerli veritabanında izin gerektirir ALTER ANY DATABASE DDL TRIGGER .
Belirtilen modül sunucu düzeyinde bir DDL tetikleyicisi olduğunda, izin gerektirir CONTROL SERVER .
koşul ile EXECUTE AS tanımlanan modüller için belirtilen IMPERSONATE yetkili üzerinde izin gereklidir. Genellikle, bir nesnenin yenilenmesi, modül ile EXECUTE AS tanımlanmadığı ve sorumlunun kullanıcı adı artık modülün oluşturulduğu zamandan farklı bir kullanıcıya çözümlenmediği sürece asıl öğesini değiştirmezEXECUTE AS USER.
Örnekler
Aşağıdaki örnek, tabloya başvuran bir tablo ve yordam oluşturur, Always Encrypted'ı yapılandırır ve ardından tablonun değiştirilmesini ve yordamın çalıştırılmasını sp_refresh_parameter_encryption gösterir.
İlk tabloyu ve tabloya referans veren bir saklı yordam oluşturun.
CREATE TABLE [Patients]
(
[PatientID] INT IDENTITY (1, 1) NOT NULL,
[SSN] CHAR (11),
[FirstName] NVARCHAR (50) NULL,
[LastName] NVARCHAR (50) NOT NULL,
[MiddleName] NVARCHAR (50) NULL,
[StreetAddress] NVARCHAR (50) NOT NULL,
[City] NVARCHAR (50) NOT NULL,
[ZipCode] CHAR (5) NOT NULL,
[State] CHAR (2) NOT NULL,
[BirthDate] DATE NOT NULL,
CONSTRAINT [PK_Patients] PRIMARY KEY CLUSTERED ([PatientID] ASC)
);
GO
CREATE PROCEDURE [find_patient]
@SSN CHAR (11)
AS
BEGIN
SELECT *
FROM [Patients]
WHERE SSN = @SSN;
END
GO
Ardından Always Encrypted anahtarlarını ayarlayın.
CREATE COLUMN MASTER KEY [CMK1]
WITH (
KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
KEY_PATH = N'CurrentUser/my/A66BB0F6DD70BDFF02B62D0F87E340288E6F9305'
);
GO
CREATE COLUMN ENCRYPTION KEY [CEK1]
WITH VALUES (
COLUMN_MASTER_KEY = [CMK1],
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x
016E000001630075007200720065006E00740075007300650072002F006D0079002F006100360036006200620030006600360064006400370030006200640066006600300032006200360032006400300066003800370065003300340030003200380038006500360066003900330030003500CA0D0CEC74ECADD1804CF99137B4BD06BBAB15D7EA74E0C249A779C7768A5B659E0125D24FF827F5EA8CA517A8E197ECA1353BA814C2B0B2E6C8AB36E3AE6A1E972D69C3C573A963ADAB6686CF5D24F95FE43140C4F9AF48FBA7DF2D053F3B4A1F5693A1F905440F8015BDB43AF8A04BE4E045B89876A0097E5FBC4E6A3B9C3C0D278C540E46C53938B8C957B689C4DC095821C465C73117CBA95B758232F9E5B2FCC7950B8CA00AFE374DE42847E3FBC2FDD277035A2DEF529F4B735C20D980073B4965B4542A34723276A1646998FC6E1C40A3FDB6ABCA98EE2B447F114D2AC7FF8C7D51657550EC5C2BABFFE8429B851272086DCED94332CF18FA854C1D545A28B1EF4BE64F8E035175C1650F6FC5C4702ACF99850A4542B3747EAEC0CC726E091B36CE24392D801ECAA684DE344FECE05812D12CD72254A014D42D0EABDA41C89FC4F545E88B4B8781E5FAF40D7199D4842D2BFE904D209728ED4F527CBC169E2904F6E711FF81A8F4C25382A2E778DD2A58552ED031AFFDA9D9D891D98AD82155F93C58202FC24A77F415D4F8EF22419D62E188AC609330CCBD97CEE1AEF8A18B01958833604707FDF03B2B386487CC679D7E352D0B69F9FB002E51BCD814D077E82A09C14E9892C1F8E0C559CFD5FA841CEF647DAB03C8191DC46B772E94D579D8C80FE93C3827C9F0AE04D5325BC73111E07EEEDBE67F1E2A73580085
);
GO
Son olarak, SSN sütununu şifrelenmiş sütunla değiştirin ve Always Encrypted bileşenlerini güncelleştirmek için yordamı çalıştırın sp_refresh_parameter_encryption .
ALTER TABLE [Patients] DROP COLUMN [SSN];
GO
ALTER TABLE [Patients]
ADD [SSN] CHAR (11) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (
COLUMN_ENCRYPTION_KEY = [CEK1],
ENCRYPTION_TYPE = DETERMINISTIC,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) NOT NULL;
GO
EXECUTE sp_refresh_parameter_encryption [find_patient];
GO