15

Tôi nhận được thông báo lỗi sau, khi tôi cố kết nối với SQL Azure.Cách khắc phục Azure "Đăng nhập Windows không được hỗ trợ trong phiên bản SQL Server này"?

đăng nhập Windows không được hỗ trợ trong phiên bản này của SQL Server

Tôi đang sử dụng một chuỗi kết nối Azure. Về phát triển, tôi đang chạy với SQL Server Express. Lỗi cụ thể này được ném khi tôi cố gắng tìm nạp một số dữ liệu từ cơ sở dữ liệu.

Bối cảnh mà tôi đang sử dụng đang chạy trong một điều khoản sử dụng, xem dưới đây

function List<SomeType> GetList(string dbContextName) 
{ 
    using (MyDbContext context = new MyDbContext) 
    { 
     return context.SomeTypes.ToList(); 
    } 
} 

Chúng tôi đang sử dụng Entity Framework phiên bản 4.2, ASP.NET MVC 3 và .NET 4.0.

Tôi làm cách nào để giải quyết vấn đề này?

+4

Dường như bạn cần sử dụng thông tin đăng nhập SQL thay vì đăng nhập Windows để bảo mật - nghĩa là không có SSPI, v.v. chỉ một tên người dùng/mật khẩu SQL –

+2

** HIỂN THỊ US ** (các) chuỗi kết nối được sử dụng! Bạn ** không thể ** sử dụng cài đặt 'Integrated Security = SSPI;' đối với SQL Azure, có thể là mặc định cho cài đặt SQL Server Express cục bộ của bạn ... –

Trả lời

6

Xác thực tích hợp (nghĩa là SSPI trong chuỗi kết nối) KHÔNG được hỗ trợ trong SQL Azure. Chỉ xác thực SQL được hỗ trợ (tức là tên người dùng & mật khẩu trong chuỗi kết nối)

8

Az đã được đề cập bởi những người khác, chỉ xác thực SQL Server được hỗ trợ trong SQL Azure. Bạn có thể đọc thêm trên Guidelines and Limitations with SQL Azure. Cũng như Security Guidelines and limitations for SQL Azure.

Bạn phải tự mình CREATE LOGIN trong cơ sở dữ liệu MASTER của mình, sau đó bạn sẽ muốn CREATE USER trong Cơ sở dữ liệu Azure tùy chỉnh của mình. Cũng đừng quên thực hiện sys.sp_addrolemember để cấp một số quyền cho người dùng của bạn.

Thông tin thêm về managing users and logins in SQL Azure có thể được tìm thấy here.

Và, cuối cùng, bạn luôn có thể xem nguồn vô giá cho connection strings.

22

Tôi đã sử dụng user/pass và vẫn nhận được thông báo lỗi. Nhưng, tôi đã thêm vào chuỗi kết nối của mình và nó hoạt động.

Trusted_Connection=False;Encrypt=True; 
8

Set

Integrated Security=False 

Trong Connection String.

4

Bạn đã có thể sử dụng chuỗi kết nối không chính xác, đây là định dạng chuỗi kết nối mà làm việc đối với trường hợp của tôi:

"ConnectionString": "Server = tcp: xxxx.database.windows.net, 1433; Cơ sở dữ liệu = xxx; ID người dùng = xxx; Mật khẩu = xxx; Mã hóa = True; TrustServerCertificate = False; Thời gian chờ kết nối = 30; "

0
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": { 
    "WinDwellContext": "Server=ServerName;Database=DbName;User Id=loginName;Password=loginPassword;Trusted_Connection=false;MultipleActiveResultSets=true" 
    } 
Các vấn đề liên quan