Как решить "Не удалось создать принципала PRINCIPAL_NAME". ошибка? - PullRequest
0 голосов
/ 06 мая 2020

Я использую команду sqlcmd ниже в сценарии оболочки.

sqlcmd -S <SERVER_NAME> -U "<USERNAME>" -P <PASSWORD> -d "<DATABASE>" -q 'CREATE USER [<PRINCIPAL_NAME>] FROM EXTERNAL PROVIDER'

но выдает ошибку ниже:

Msg 33159, Level 16, State 1, Server <SERVER_NAME>, Line 1
Principal '<PRINCIPAL_NAME>' could not be created. Only connections established with Active Directory accounts can create other Active Directory users.

Какие изменения я должен внести, чтобы он работал правильно?

1 Ответ

1 голос
/ 07 мая 2020

Если вы хотите создать пользователя автономной базы данных на основе Azure AD, нам необходимо войти в базу данных с идентификатором Azure AD, который имеет разрешение ALTER ANY USER . Дополнительные сведения см. В документе . Кроме того, когда мы используем инструмент sqlcmd для входа в базу данных с идентификатором Azure AD, добавьте -G. Он используется для указания, что пользователь должен пройти аутентификацию с использованием Azure аутентификации Active Directory.

Что касается его реализации, пожалуйста, обратитесь к следующим шагам

  1. Настройте Azure аутентификацию Active Directory с вашим SQL сервером .

  2. Создайте автономных пользователей базы данных в своей базе данных, сопоставленных с Azure идентификаторами AD

    a . логин

    sqlcmd -S <server name> -d test -U <your SQL Azure AD admin> -P <password> -G
    

    б. Создать

    CREATE USER [<PRINCIPAL_NAME>] FROM EXTERNAL PROVIDER;
    GO
    

    enter image description here

...