SQL Azureに接続しようとすると、次のエラーメッセージが表示されます。
Windowsログインは、このバージョンのSQL Serverではサポートされていません
Azure接続文字列を使用しています。開発では、SQL Server Expressに対して実行しています。この特定のエラーは、データベースからデータをフェッチしようとするとスローされます。
私が使用しているコンテキストはusing句で実行されています。以下を参照してください
function List<SomeType> GetList(string dbContextName)
{
using (MyDbContext context = new MyDbContext)
{
return context.SomeTypes.ToList();
}
}
Entity Frameworkバージョン4.2、ASP.NET MVC 3および.NET 4.0を使用しています。
この問題を解決するにはどうすればよいですか?
ユーザー/パスを使用していてもエラーメッセージが表示されます。しかし、これを接続文字列に追加したところ、うまくいきました。
Trusted_Connection=False;Encrypt=True;
セットする
Integrated Security=False
接続文字列内。
Azは既に他の人から言及されていますが、SQL AzureではSQL Server認証のみがサポートされています。詳しくは SQL Azureのガイドラインと制限事項 をご覧ください。同様に SQL Azureのセキュリティガイドラインと制限事項 。
MASTERデータベースで CREATE LOGIN を自分で行う必要があります。次に、カスタムAzureデータベースで CREATE USER を実行します。また、sys.sp_addrolememberを実行して、ユーザーにいくつかの権限を付与することを忘れないでください。
詳細は SQL Azureでのユーザーとログインの管理 をご覧ください こちら 。
そして最後に、常に 接続文字列 の貴重なソースを確認できます。
統合認証(つまり、接続文字列のSSPI)は、SQL Azureではサポートされていません。 SQL認証のみがサポートされています(つまり、接続文字列のユーザー名とパスワード)
おそらく間違った接続文字列を使用した可能性があります。これは、私の場合に機能した接続文字列の形式です。
"ConnectionString": "サーバー= tcp:xxxx.database.windows.net、1433;データベース= xxx;ユーザーID = xxx;パスワード= xxx; Encrypt = True; TrustServerCertificate = False;接続タイムアウト= 30;"
1.**Windows Authentication** is not supported in Azure so you should go with **SQL Server Authentication**.
2.When you use SQL server Authentication you should pass User Id(Login in SQL server) and Password(Password in SQL server).
3.User Id should contain space in between should not be like UserId.
4.Trusted_Connection should be false.
The connection string in *appsettings.json* look like this:
"ConnectionStrings": {
"DBContext": "Server=ServerName;Database=DbName;User Id=loginName;Password=loginPassword;Trusted_Connection=false;MultipleActiveResultSets=true"
}