Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En SMO, la clave maestra de servicio se representa mediante el ServiceMasterKey objeto . Se hace referencia a esto mediante la ServiceMasterKey propiedad del Server objeto . Se puede volver a generar mediante el Regenerate método .
La clave maestra de base de datos se representa mediante el MasterKey objeto . La IsEncryptedByServer propiedad indica si la clave maestra de base de datos está cifrada o no por la clave maestra de servicio. La copia cifrada en la base de datos maestra se actualiza automáticamente cada vez que se cambia la clave maestra de base de datos.
Es posible quitar el cifrado de claves de servicio mediante el DropServiceKeyEncryption método y cifrar la clave maestra de base de datos con una contraseña. En esa situación, tendrá que abrir explícitamente la clave maestra de base de datos antes de acceder a las claves privadas que ha protegido.
Cuando se adjunta una base de datos a una instancia de SQL Server, debe proporcionar la contraseña de la clave maestra de base de datos o ejecutar el AddServiceKeyEncryption método para hacer una copia sin cifrar de la clave maestra de base de datos disponible para el cifrado con la clave maestra de servicio. Este paso se recomienda evitar la necesidad de abrir explícitamente la clave maestra de base de datos.
El Regenerate método vuelve a generar la clave maestra de base de datos. Cuando se vuelve a generar la clave maestra de base de datos, se descifran todas las claves cifradas con la clave maestra de base de datos y, a continuación, las cifra con la nueva clave maestra de base de datos. El DropServiceKeyEncryption método quita el cifrado de la clave maestra de base de datos por la clave maestra de servicio. AddServiceKeyEncryption hace que se cifre una copia de la clave maestra mediante la clave maestra de servicio y se almacene en la base de datos actual y en la base de datos maestra.
En SMO, los certificados se representan mediante el Certificate objeto . El Certificate objeto tiene propiedades que especifican la clave pública, el nombre del asunto, el período de validez y la información sobre el emisor. El permiso para acceder al certificado se controla mediante los Grantmétodos , Revoke y Deny .
Ejemplo
Para el ejemplo de código siguiente, tendrá que seleccionar el entorno de programación, la plantilla de programación y el lenguaje de programación para crear la aplicación. Para obtener más información, vea Crear un proyecto SMO de Visual Basic en Visual Studio .NET y Crear un proyecto SMO de Visual C# en Visual Studio .NET.
Agregar un certificado en Visual Basic
En el ejemplo de código se crea un certificado simple con una contraseña de cifrado. A diferencia de otros objetos, el Create método tiene varias sobrecargas. La sobrecarga usada en el ejemplo crea un nuevo certificado con una contraseña de cifrado.
Agregar un certificado en Visual C#
En el ejemplo de código se crea un certificado simple con una contraseña de cifrado. A diferencia de otros objetos, el Create método tiene varias sobrecargas. La sobrecarga usada en el ejemplo crea un nuevo certificado con una contraseña de cifrado.
{
//Connect to the local, default instance of SQL Server.
{
Server srv = new Server();
//Reference the AdventureWorks2012 database.
Database db = srv.Databases["AdventureWorks2012"];
//Define a Certificate object variable by supplying the parent database and name in the constructor.
Certificate c = new Certificate(db, "Test_Certificate");
//Set the start date, expiry date, and description.
System.DateTime dt;
DateTime.TryParse("January 01, 2010", out dt);
c.StartDate = dt;
DateTime.TryParse("January 01, 2015", out dt);
c.ExpirationDate = dt;
c.Subject = "This is a test certificate.";
//Create the certificate on the instance of SQL Server by supplying the certificate password argument.
c.Create("pGFD4bb925DGvbd2439587y");
}
}
Adición de un certificado en PowerShell
En el ejemplo de código se crea un certificado simple con una contraseña de cifrado. A diferencia de otros objetos, el Create método tiene varias sobrecargas. La sobrecarga usada en el ejemplo crea un nuevo certificado con una contraseña de cifrado.
# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2012
CD \sql\localhost\default\databases
$db = get-item AdventureWorks2012
#Create a certificate
$c = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Certificate -ArgumentList $db, "Test_Certificate"
$c.StartDate = "January 01, 2010"
$c.Subject = "This is a test certificate."
$c.ExpirationDate = "January 01, 2015"
#Create the certificate on the instance of SQL Server by supplying the certificate password argument.
$c.Create("pGFD4bb925DGvbd2439587y")