Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: SQL Server 2016 (13.x) och senare versioner 
Azure SQL Database
Azure SQL Managed Instance
Uppdaterar Always Encrypted-metadata för parametrarna för den angivna icke-schemabundna lagrade proceduren, användardefinierad funktion, vy, DML-utlösare, DDL-utlösare på databasnivå eller DDL-utlösare på servernivå i den aktuella databasen.
              
              
              Transact-SQL syntaxkonventioner
sp_refresh_parameter_encryption
    [ @name = ] N'name'
    [ , [ @namespace = ] { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER } ]
[ ; ]
Arguments
[ @name = ] N'namn'
Namnet på den lagrade proceduren, användardefinierad funktion, vy, DML-utlösare, DDL-utlösare på databasnivå eller DDL-utlösare på servernivå. @name är nvarchar(776), utan standardvärde. @name kan inte vara en clr-lagrad procedur (common language runtime) eller en CLR-funktion. @name kan inte vara schemabunden. @name kan vara en identifierare i flera delar, men kan bara referera till objekt i den aktuella databasen.
[ @namespace = ] N'namespace'
Klassen för den angivna modulen. 
              @namespace är nvarchar(20), med standardvärdet OBJECT. När @name är en DDL-utlösare krävs @namespace . Giltiga indata är DATABASE_DDL_TRIGGER och SERVER_DDL_TRIGGER.
Returnera kodvärden
              0 (lyckades) eller ett icke-nolltal (fel).
Anmärkningar
Krypteringsmetadata för parametrar i en modul kan bli inaktuella om:
Krypteringsegenskaperna för en kolumn i en tabell som modulreferenserna refererar till har uppdaterats. Till exempel togs en kolumn bort och en ny kolumn läggs till med samma namn, men en annan krypteringstyp, krypteringsnyckel eller en krypteringsalgoritm.
Modulen refererar till en annan modul med inaktuella metadata för parameterkryptering.
När krypteringsegenskaperna för en tabell ändras sp_refresh_parameter_encryption ska köras för alla moduler som refererar direkt eller indirekt till tabellen. Den här lagrade proceduren kan anropas på dessa moduler i valfri ordning, utan att användaren först behöver uppdatera den inre modulen innan den går vidare till att använda dess anropare.
              sp_refresh_parameter_encryption påverkar inte några behörigheter, utökade egenskaper eller SET alternativ som är associerade med objektet.
Om du vill uppdatera en DDL-utlösare på servernivå kör du den här lagrade proceduren från kontexten för alla databaser.
Anmärkning
Alla signaturer som är associerade med objektet tas bort när du kör sp_refresh_parameter_encryption.
Permissions
Kräver ALTER behörighet för modulen och REFERENCES behörighet för alla CLR-användardefinierade typer och XML-schemasamlingar som refereras till av objektet.
När den angivna modulen är en DDL-utlösare på databasnivå kräver ALTER ANY DATABASE DDL TRIGGER behörighet i den aktuella databasen.
När den angivna modulen är en DDL-utlösare på servernivå kräver CONTROL SERVER behörighet.
För moduler som definieras med EXECUTE AS-satsen krävs IMPERSONATE-behörighet för den angivna huvudansvariga. Normalt ändrar uppdatering av ett objekt inte dess EXECUTE AS huvudnamn, såvida inte modulen har definierats med EXECUTE AS USER och användarnamnet för huvudkontot nu matchas mot en annan användare än när modulen skapades.
Examples
I följande exempel skapas en tabell och en procedur som refererar till tabellen, konfigurerar Always Encrypted och visar sedan hur du ändrar tabellen och kör proceduren sp_refresh_parameter_encryption .
Skapa först den inledande tabellen och en lagrad procedur som refererar till tabellen.
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
Konfigurera sedan Always Encrypted-nycklar.
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
Ersätt slutligen SSN-kolumnen med den krypterade kolumnen och kör proceduren sp_refresh_parameter_encryption för att uppdatera Always Encrypted-komponenterna.
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