CREATE ASYMMETRIC KEY (Transact-SQL)

Создает асимметричный ключ в базе данных.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

CREATE ASYMMETRIC KEY Asym_Key_Name 
   [ AUTHORIZATION database_principal_name ]
   {
      FROM <Asym_Key_Source>
      |
      WITH ALGORITHM = { RSA_512 | RSA_1024 | RSA_2048 }
   }
      [ ENCRYPTION BY PASSWORD = 'password' ] 

<Asym_Key_Source>::=
   FILE = 'path_to_strong-name_file'
   |
   EXECUTABLE FILE = 'path_to_executable_file'
   |
   ASSEMBLY Assembly_Name

Аргументы

  • FROM Asym_Key_Source
    Задает источник, из которого нужно загрузить пару асимметричных ключей.
  • AUTHORIZATION database_principal_name
    Задает владельца асимметричного ключа. Владелец не может быть ролью или группой. Если этот параметр опущен, владельцем будет текущий пользователь.
  • FILE ='path_to_strong-name_file'
    Указывает путь надежного имени файла, из которого будет загружена пара ключей.
  • EXECUTABLE FILE ='path_to_executable_file'
    Указывает файл сборки, из которого будет загружен открытый ключ.
  • ASSEMBLY Assembly_Name
    Указывает имя сборки, из которой будет загружен открытый ключ.
  • ENCRYPTION BY PASSWORD ='password'
    Указывает пароль для шифрования закрытого ключа. Если это предложение отсутствует, закрытый ключ будет зашифрован с помощью главного ключа базы данных. Аргумент password имеет максимальную длину 128 символов.

Замечания

Асимметричный ключ является защищаемой сущностью на уровне базы данных. В его форме по умолчанию эта сущность содержит как открытый, так и закрытый ключ. CREATE ASYMMETRIC KEY при выполнении без предложения FROM формирует новую пару ключей. CREATE ASYMMETRIC KEY при выполнении с предложением FROM импортирует пару ключей из файла или открытый ключ из сборки.

По умолчанию закрытый ключ защищается с помощью главного ключа базы данных. Для защиты закрытого ключа необходим пароль, если не был создан главный ключ базы данных. Если главный ключ базы данных существует, пароль необязателен.

Закрытый ключ может быть длинной 512, 1024 или 2048 бит.

Разрешения

Необходимо разрешение CREATE ASYMMETRIC KEY на базу данных. Если указывается предложение AUTHORIZATION, необходимо разрешение IMPERSONATE на участника базы данных или разрешение ALTER на роль приложения.

Примеры

А. Создание асимметричного ключа

Следующий пример создает асимметричный ключ под именем PacificSales09, используя алгоритм RSA_2048, и защищает закрытый ключ паролем.

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55foajsd9764'; 
GO

Б. Создание асимметричного ключа из файла с предоставлением авторизации пользователю

Следующий пример создает асимметричный ключ PacificSales19 из пары ключей, сохраненных в файле, и затем авторизует пользователя SyedAbbas для использования асимметричного ключа.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION SyedAbbas  
    FROM FILE = ' c:\PacSales\Managers\SyedAbbasCerts.tmp'  
    ENCRYPTION BY PASSWORD = '35698ofg0sjlkfLKJ4548872$$$2';
GO

См. также

Справочник

ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

Другие ресурсы

Выбор алгоритма шифрования
Иерархия средств шифрования

Справка и поддержка

Получение помощи по SQL Server 2005