Azure SQL 数据库 - Active Directory 集成身份验证

Jak*_*sky 7 azure azure-active-directory azure-sql-database azure-sql-server

我想实现以下目标:

避免在 Azure 上对我的生产配置进行SQL 身份验证,并使用Active Directory 集成身份验证

当我转到 Azure 的连接字符串部分并复制以下连接字符串时:

Server=[my server name];Initial Catalog=[my db name];Persist Security Info=False;User ID=[my user name];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication="Active Directory Integrated";
Run Code Online (Sandbox Code Playgroud)

并尝试使用它我得到以下异常:

异常消息:无法将“Authentication=Active Directory Integrated”与“用户 ID”、“UID”、“密码”或“PWD”连接字符串关键字一起使用。异常堆栈跟踪:位于 System.Data.SqlClient.SqlConnectionString..ctor(String ConnectionString)在System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(字符串connectionString,DbConnectionOptions之前)在System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey键,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions&userConnectionOptions)在System.Data.SqlClient.SqlConnection.ConnectionString_Set( DbConnectionPoolKey 键)

由于我的数据库管理/基础设施经验非常有限,我不知道为什么“用户 ID”在我在 Azure 上获得的连接字符串中明确列出时会破坏所有内容。

有几点需要注意:

  • SQL 身份验证有效
  • 我有 Active Directory 管理员集

Alb*_*llo 5

在 C# 上,您的连接字符串应如下所示:

string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Run Code Online (Sandbox Code Playgroud)

请阅读文档和文档以获取更多信息。