Sql 如何解决;校长';委托人姓名';无法创建。”;错误?

Sql 如何解决;校长';委托人姓名';无法创建。”;错误?,sql,sql-server,tsql,azure-sql-database,sqlcmd,Sql,Sql Server,Tsql,Azure Sql Database,Sqlcmd,我在shell脚本中使用下面的sqlcmd命令 sqlcmd -S <SERVER_NAME> -U "<USERNAME>" -P <PASSWORD> -d "<DATABASE>" -q 'CREATE USER [<PRINCIPAL_NAME>] FROM EXTERNAL PROVIDER' sqlcmd-S-U”“-P-d”“-q'从外部提供程序创建用户[] 但它给出了以下错误: Msg 33159, Level 16

我在shell脚本中使用下面的sqlcmd命令

sqlcmd -S <SERVER_NAME> -U "<USERNAME>" -P <PASSWORD> -d "<DATABASE>" -q 'CREATE USER [<PRINCIPAL_NAME>] FROM EXTERNAL PROVIDER'
sqlcmd-S-U”“-P-d”“-q'从外部提供程序创建用户[]
但它给出了以下错误:

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.
Msg 33159,16级,状态1,服务器,第1行

无法创建主体“”。只有与Active Directory帐户建立的连接才能创建其他Active Directory用户。

我应该做哪些更改才能使其正常工作?

如果您想创建基于Azure AD的包含数据库用户,我们需要使用Azure AD标识登录数据库,该标识具有更改任何用户的权限。有关更多详细信息,请参阅。此外,当我们使用工具sqlcmd以Azure广告标识登录数据库时,请添加。它用于指定使用Azure Active Directory身份验证对用户进行身份验证

关于如何实施,请参考以下步骤

  • 在映射到Azure AD标识的数据库中创建包含的数据库用户

    a。登录

    sqlcmd -S <server name> -d test -U <your SQL Azure AD admin> -P <password> -G
    
    sqlcmd-S-d测试-U-P-G
    
    b。创造

    CREATE USER [<PRINCIPAL_NAME>] FROM EXTERNAL PROVIDER;
    GO
    
    从外部提供者创建用户[];
    去
    


  • “只有与Active Directory帐户建立的连接才能创建其他Active Directory用户。”。您需要使用AD用户而不是SQL用户登录您还有其他问题吗?如果您没有其他顾虑,请接受回答好吗?