我想实现以下目标:
在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上获得的连接字符串中明确列出时会破坏所有内容。
有几点需要注意:
答案 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();
答案 1 :(得分:0)
尝试更改Azure数据库中的IP地址。关于此问题的Lynda.com有一个教程。