Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Banco de Dados SQL do Azure Synapse Analytics
no Microsoft Fabric
No SMO, a chave mestra de serviço é representada pelo ServiceMasterKey objeto. Isso é referenciado ServiceMasterKey pela propriedade do Server objeto. Ele pode ser regenerado usando o Regenerate método.
A chave mestra do MasterKey banco de dados é representada pelo objeto. A IsEncryptedByServer propriedade indica se a chave mestra do banco de dados é ou não criptografada pela chave mestra de serviço. A cópia criptografada no banco de dados mestre é atualizada automaticamente sempre que a chave mestra do banco de dados é alterada.
É possível descartar a criptografia de chave de serviço usando o DropServiceKeyEncryption método e criptografar a chave mestra do banco de dados com uma senha. Nessa situação, você terá que abrir explicitamente a chave mestra do banco de dados antes de acessar as chaves privadas que ela protegeu.
Quando um banco de dados está sendo anexado a uma instância do SQL Server, você deve fornecer a senha para a chave mestra do banco de dados ou executar o AddServiceKeyEncryption método para disponibilizar uma cópia não criptografada da chave mestra do banco de dados para criptografia com a chave mestra de serviço. Esta etapa é recomendada para evitar a necessidade de abrir explicitamente a chave mestra do banco de dados.
O Regenerate método regenera a chave mestra do banco de dados. Quando a chave mestra do banco de dados é regenerada, todas as chaves que foram criptografadas com a chave mestra do banco de dados são descriptografadas e, em seguida, criptografa-as com a nova chave mestra do banco de dados. O DropServiceKeyEncryption método remove a criptografia da chave mestra do banco de dados pela chave mestra de serviço. AddServiceKeyEncryption Faz com que uma cópia da chave mestra seja criptografada usando a chave mestra de serviço e armazenada no banco de dados atual e no banco de dados mestre.
No SMO, os Certificate certificados são representados pelo objeto. O Certificate objeto tem propriedades que especificam a chave pública, o nome do assunto, o período de validade e informações sobre o emissor. A permissão para acessar o certificado é controlada usando os métodos Grant, Revoke e Negar .
Example
Para os exemplos de código a seguir, você terá que selecionar o ambiente de programação, o modelo de programação e a linguagem de programação para criar seu aplicativo. Para obter mais informações, consulte Criar um projeto SMO do Visual C# no Visual Studio .NET.
Adicionando um certificado no Visual C#
O exemplo de código cria um certificado simples com uma senha de criptografia. Ao contrário de outros objetos, o Create método tem várias sobrecargas. A sobrecarga usada no exemplo cria um novo certificado com uma senha de criptografia.
{
//Connect to the local, default instance of SQL Server.
{
Server srv = new Server();
//Reference the AdventureWorks2022 database.
Database db = srv.Databases["AdventureWorks2022"];
//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");
}
}
Adicionando um certificado no PowerShell
O exemplo de código cria um certificado simples com uma senha de criptografia. Ao contrário de outros objetos, o Create método tem várias sobrecargas. A sobrecarga usada no exemplo cria um novo certificado com uma senha de criptografia.
# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2022
CD \sql\localhost\default\databases
$db = get-item AdventureWorks2022
#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")