имам ASP 4.6 MVC уебсайт (Всички актуализирани до най-новите пакети Nuget), който използва интегрираната рамка за идентичност с Entity Framework на SQL Server.
Ако използвам ConnectionString с моя администратор на базата данни всичко работи, но когато превключа към допълнителна Databaseuser получавам "Вход не успя за потребителя ...".
Създадох потребител в мастер база данни с това:
CREATE LOGIN user1 with password="geheim"
След това го добави към базата данни с това:
CREATE USER user1 FROM LOGIN user1
EXEC sp_addrolemember "db_datareader", "user1"
EXEC sp_addrolemember "db_datawriter", "user1"
Мога да се свържа с тези акредитиви от SQL Enterprise Manager да се SQL Azure и да запитвам моята база данни, но не мога да използвам самоличността в базата данни.
Какви идеи са необходими, за да използвате базата данни?
Отговори:
1 за отговор № 1След дълги отстраняване на грешки сесиите намерихрешение: Рамката за идентичност се свързва, за да сканира базата данни, ако throwIfV1Schema е настроен на true. Тъй като използвам персонализирана идентичностDbContext, трябваше да променя конструктора към това:
Public Sub New()
MyBase.New(Settings.DSN, False)
End Sub
Сега стартирането на идентификационната рамка само се нуждае от потребител за текущата база данни.
0 за отговор № 2
Бих опитал да направя LOGIN името различно от името на USER. Можете да намерите подробни инструкции как да го настроите и какви роли да използвате на следната връзка: Сигурност на SQL база данни: Управление на достъп до бази данни и сигурност на вход
Следният пример е предоставен от тази страница, която е подобна на тази, която имате.
-- first, connect to the master database
CREATE LOGIN login1 WITH password="<ProvidePassword>";
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember "dbmanager", "login1User";
EXEC sp_addrolemember "loginmanager", "login1User";