Когда пользователь пытается подключиться к базе данных SQL Server через проверку подлинности Windows в моем приложении ASP MVC 3 со следующей строкой подключения:
<add name="btnintranetContext" connectionString="Data Source=BTN-SERVER;Initial Catalog=Intranet;Integrated Security=SSPI;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
Они получают следующую ошибку:
Cannot open database "Intranet" requested by the login. The login failed.
Login failed for user 'User'.
Я понимаю, что это значит, это означает, что я не предоставил этому пользователю доступ к базе данных, но я хочу, чтобы пользователь мог иметь доступ к базе данных, не предоставляя им всем доступ к ней.Я попытался указать конкретного пользователя базы данных в строке подключения следующим образом:
<add name="btnintranetContext" connectionString="Data Source=BTN-SERVER;Initial Catalog=Intranet;User Id=mylogin;Password=mypassword;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
Но я получаю новую ошибку:
Login failed for user 'mylogin'.
The provider did not return a ProviderManifestToken string.
Но я точно знаю, что mylogin имеет доступк базе данных, потому что, когда я пытаюсь получить доступ к базе данных с помощью строки подключения проверки подлинности Windows, это работает.Но по соображениям безопасности я не хочу предоставлять всем, кто использует мое приложение, доступ к базе данных, поэтому я попытался указать пользователя в строке подключения.
Дополнительная информация из моего файла web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<trust level="Full"/>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>