Подтвердить что ты не робот

Какова цель создания логина из сертификата?

SQL Server предоставляет возможность создания логина из сертификата. Например.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<loginName> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO

Однако в документации говорится (внимание мое):

Логины, созданные из сертификатов или асимметричных ключей, используются только для подписи кода. Они не могут использоваться для подключения к SQL Server. Вы можете создать логин из сертификата или асимметричного ключа только тогда, когда сертификат или асимметричный ключ уже существует в master.

В чем смысл создания логина, который нельзя использовать для подключения к серверу?


Фон

Нам нужно внести некоторые изменения безопасности в наше приложение среднего уровня. В частности, как он подключается к своей базе данных. Силы, которые будут установлены, гласят: "мы не можем использовать проверку подлинности Windows".
Я знаю, что это обычно предпочтительный метод, но любой, у кого есть доступ к серверам среднего уровня, будет иметь тот же доступ к базе данных, что и приложение.

Если мы используем аутентификацию SQL, нам необходимо:

  • Шифровать пароль.
  • Сохраните его в файле конфигурации/реестре.
  • Затем расшифруйте пароль, когда приложение необходимо подключиться к базе данных.

Хотя это возможно, я несколько надеялся, что:

  • Я могу использовать вход на основе сертификата.
  • Свяжите сертификат с приложением во время процесса сборки.
  • И используйте это для подключения к SQL Server.

Вышеупомянутый отрывок из документальности, похоже, противоречит этому.

4b9b3361

Ответ 1

Он используется для кодирования подписи объектов базы данных SQL Server. CREATE LOGIN x FROM CERTIFICATE y подробно объясняется здесь вместе с примерами и сценариями для SQL Server 2008 и 2008 R2: http://technet.microsoft.com/ru -us/library/ms345102 (v = sql.105).aspx

Вот отличный пример подписания хранимой процедуры в SQL Server 2014: http://technet.microsoft.com/en-us/library/bb283630.aspx