New-SqlColumnMasterKey
Crea un objeto de clave maestra de columna en la base de datos.
Sintaxis
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[-InputObject] <Database>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Description
El cmdlet New-SqlColumnMasterKey crea un objeto de clave maestra de columna en la base de datos. Un objeto de clave maestra de columna captura la ubicación de una clave criptográfica física que está pensada para usarse como clave maestra de columna para la característica Always Encrypted.
Ejemplos
Ejemplo 1: Crear un objeto de clave maestra de columna que haga referencia a un certificado
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
El primer comando usa el cmdlet New-SqlCertificateStoreColumnMasterKeySettings para crear una configuración maestra de columna que haga referencia a un certificado en el Almacén de certificados de Windows y almacene el resultado en la variable denominada $CmkSettings
.
Ejemplo 2: Creación de un objeto de clave maestra de columna que haga referencia a una clave en Azure Key Vault
$CmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
El primer comando usa el cmdlet New-SqlCertificateStoreColumnMasterKeySettings para crear un objeto de clave maestra de columna que haga referencia a una clave en Azure Key Vault y almacene el resultado en la variable denominada $CmkSettings
.
Ejemplo 3: Crear un objeto de clave maestra de columna que haga referencia a una clave compatible con CNG
$CmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName 'Microsoft Software Key Storage Provider' -KeyName 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
El primer comando usa el cmdlet New-SqlCertificateStoreColumnMasterKeySettings para crear un objeto de clave maestra de columna que haga referencia a una clave en un almacén de claves que admita la API Cryptography Next Generation (CNG) y almacene el resultado en la variable denominada $CmkSettings
.
Ejemplo 4: Creación de un objeto de clave maestra de columna que haga referencia a una clave compatible con CSP
$CmkSettings = New-SqlCspColumnMasterKeySettings 'MyCspProvider' 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
El primer comando usa el cmdlet New-SqlCertificateStoreColumnMasterKeySettings para crear un objeto de clave maestra de columna que haga referencia a una clave en un almacén de claves de almacén de claves con un proveedor de servicios criptográficos (CSP) compatible con cryptography API (CAPI).
Ejemplo 5: Crear un objeto de clave maestra de columna que haga referencia a un certificado, se firma automáticamente y admite cálculos de enclave
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420' -AllowEnclaveComputations
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
El primer comando usa el cmdlet New-SqlCertificateStoreColumnMasterKeySettings para crear una configuración maestra de columna que haga referencia a un certificado que admita cálculos de enclave y se almacene en el Almacén de certificados de Windows.
Parámetros
-AccessToken
El token de acceso que se usa para autenticarse en SQL Server, como alternativa a la autenticación de usuario o contraseña de Windows.
Esto se puede usar, por ejemplo, para conectarse a SQL Azure DB
y SQL Azure Managed Instance
mediante un Service Principal
o un Managed Identity
.
El parámetro que se va a usar puede ser una cadena que representa el token o un objeto PSAccessToken
tal como se devuelve mediante la ejecución de Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Este parámetro es nuevo en la versión 22 del módulo.
Tipo: | PSObject |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ColumnMasterKeySettings
Especifica el objeto SqlColumnMasterKeySettings que especifica la ubicación de la clave maestra de columna real.
El objeto
KeyStoreProviderName especifica el nombre de un proveedor de almacén de claves maestras de columna, que un controlador cliente habilitado para Always Encrypted debe usar para tener acceso al almacén de claves que contiene la clave maestra de columna.
KeyPath especifica la ubicación de la clave maestra de columna dentro del almacén de claves. El formato KeyPath es específico del almacén de claves.
Tipo: | SqlColumnMasterKeySettings |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Encrypt
Tipo de cifrado que se va a usar al conectarse a SQL Server.
Este valor se asigna a la propiedad Encrypt
SqlConnectionEncryptOption
en el objeto SqlConnection del controlador Microsoft.Data.SqlClient.
En la versión 22 del módulo, el valor predeterminado es Optional
(por compatibilidad con v21). En la versión 23+ del módulo, el valor predeterminado será "Obligatorio", que puede crear un cambio importante para los scripts existentes.
Este parámetro es nuevo en la versión 22 del módulo.
Tipo: | String |
Valores aceptados: | Mandatory, Optional, Strict |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-HostNameInCertificate
Nombre de host que se va a usar para validar el certificado TLS/SSL de SQL Server. Debe pasar este parámetro si la instancia de SQL Server está habilitada para Forzar cifrado y desea conectarse a una instancia mediante el nombre de host o el nombre corto. Si se omite este parámetro, es necesario pasar el nombre de dominio completo (FQDN) a -ServerInstance es necesario para conectarse a una instancia de SQL Server habilitada para Forzar cifrado.
Este parámetro es nuevo en la versión 22 del módulo.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifica el objeto de base de datos SQL para el que este cmdlet ejecuta la operación.
Tipo: | Database |
Posición: | 2 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Especifica el nombre del objeto de clave maestra de columna que crea este cmdlet.
Tipo: | String |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Path
Especifica la ruta de acceso de la base de datos SQL, para la que este cmdlet ejecuta la operación. Si no especifica un valor para este parámetro, el cmdlet usa la ubicación de trabajo actual.
Tipo: | String |
Posición: | 2 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ProgressAction
Determina cómo Responde PowerShell a las actualizaciones de progreso generadas por un script, cmdlet o proveedor, como las barras de progreso generadas por el cmdlet Write-Progress. El cmdlet Write-Progress crea barras de progreso que muestran el estado de un comando.
Tipo: | ActionPreference |
Alias: | proga |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Script
Indica que este cmdlet devuelve un script de Transact-SQL que realiza la tarea que realiza este cmdlet.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-TrustServerCertificate
Indica si el canal se cifrará mientras se pasa la cadena de certificados para validar la confianza.
En la versión 22 del módulo, el valor predeterminado es $true
(por compatibilidad con v21). En la versión 23+ del módulo, el valor predeterminado será "$false", que puede crear un cambio importante para los scripts existentes.
Este parámetro es nuevo en la versión 22 del módulo.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Microsoft.SqlServer.Management.Smo.Database
Salidas
Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey