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

时间:2018-04-11 09:45:20

标签: azure azure-sql-database azure-active-directory 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";

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

  

异常消息:无法使用'Authentication = Active Directory   集成'与'用户ID','UID','密码'或'PWD'连接   string keywords。,异常stacktrace:at   System.Data.SqlClient.SqlConnectionString..ctor(字符串   connectionString)at   System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(字符串   connectionString,DbConnectionOptions上一页)at   System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey   key,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions&   userConnectionOptions)at   System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey   键)

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

有几点需要注意:

  • SQL身份验证正常工作
  • 我有Active Directory管理员设置

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

尝试更改Azure数据库中的IP地址。关于此问题的Lynda.com有一个教程。