Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В SMO главный ключ службы представлен ServiceMasterKey объектом. На это ссылается ServiceMasterKey свойство Server объекта. Его можно создать с помощью Regenerate метода.
Главный ключ базы данных представлен MasterKey объектом. Свойство IsEncryptedByServer указывает, шифруется ли главный ключ базы данных главным ключом службы. Зашифрованная копия в базе данных master автоматически обновляется при изменении главного ключа базы данных.
Шифрование ключа службы можно удалить с помощью DropServiceKeyEncryption метода и зашифровать главный ключ базы данных паролем. В этом случае необходимо явно открыть главный ключ базы данных перед доступом к закрытым ключам, защищенным им.
При присоединении базы данных к экземпляру SQL Server необходимо указать пароль для главного ключа базы данных или выполнить AddServiceKeyEncryption метод, чтобы сделать незашифрованную копию главного ключа базы данных доступным для шифрования с помощью главного ключа службы. Этот шаг рекомендуется избежать необходимости явного открытия главного ключа базы данных.
Метод Regenerate повторно создает главный ключ базы данных. При повторном создании главного ключа базы данных все ключи, зашифрованные с помощью главного ключа базы данных, расшифровываются, а затем шифруют их с помощью нового главного ключа базы данных. Метод DropServiceKeyEncryption удаляет шифрование главного ключа базы данных главным ключом службы. AddServiceKeyEncryption Вызывает шифрование копии главного ключа с помощью главного ключа службы и хранения как в текущей базе данных, так и в базе данных master.
В SMO сертификаты представлены Certificate объектом. Объект Certificate имеет свойства, указывающие открытый ключ, имя субъекта, период действия и сведения о издателе. Разрешение на доступ к сертификату контролируется с помощью GrantRevoke методов и Deny методов.
Пример
В следующем примере кода необходимо выбрать среду программирования, шаблон программирования и язык программирования для создания приложения. Дополнительные сведения см. в статье "Создание проекта SMO Visual Basic в Visual Studio .NET " и создание проекта SMO Visual C# в Visual Studio .NET.
Добавление сертификата в Visual Basic
В примере кода создается простой сертификат с паролем шифрования. В отличие от других объектов, Create метод имеет несколько перегрузок. Перегрузка, используемая в примере, создает новый сертификат с паролем шифрования.
Добавление сертификата в Visual C#
В примере кода создается простой сертификат с паролем шифрования. В отличие от других объектов, Create метод имеет несколько перегрузок. Перегрузка, используемая в примере, создает новый сертификат с паролем шифрования.
{
//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");
}
}
Добавление сертификата в PowerShell
В примере кода создается простой сертификат с паролем шифрования. В отличие от других объектов, Create метод имеет несколько перегрузок. Перегрузка, используемая в примере, создает новый сертификат с паролем шифрования.
# 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")