Как предоставить доступ к моей базе данных SQL Server Express конкретному пользователю с помощью инструментов Visual Studio 2008? - PullRequest
1 голос
/ 18 марта 2011

Я пытаюсь получить доступ к базе данных SQL Server Express из обработчика HTTP-запросов ASP.NET.

Обработчик запускается под учетной записью ASPNET и использует «встроенную безопасность» в строке подключения SQL, и поэтому я получаю сообщение об ошибке, в котором говорится, что вход в систему для учетной записи ASPNET не выполнен, и поэтому я не могу получить доступ к базе данных.

Кажется, это очень распространенная проблема , и в большинстве ответов говорится "предоставить доступ к вашей базе данных пользователю ASPNET".

У меня есть только Visual Studio 2008, и я не могу найти, как изменить разрешения на доступ к базе данных. В частности, я использую Сервис-> Обозреватель серверов и вижу все таблицы в базе данных, но не могу найти, как изменить права доступа.

Как изменить права доступа к моей базе данных с помощью инструментов, поставляемых в Visual Studio 2008?

1 Ответ

4 голосов
/ 18 марта 2011

Один из вариантов - получить инструменты для SQL Express - было бы неплохо - таким образом получить SQL Server Management Console Express Edition или просто установить инструменты управления SQL Server (например, из SQL Server Developer Edition). Тогда у вас есть полный графический интерфейс (включая возможность ввода и генерации SQL).

Другой вариант - использовать SQL для этого:

  1. Используйте CREATE LOGIN для добавления имени входа в экземпляр SQL Server.
  2. Используйте CREATE USER для добавления имени входа в целевую базу данных.
  3. Используйте SP sp_addrolemember для назначения ролей.

Например. (IIS AppPools - это группа идентификаторов пула приложений в системе Dev1, которой назначен общий доступ для чтения и записи данных к текущей базе данных):

CREATE LOGIN [DEV1\IIS AppPools] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
CREATE USER [DEV1\IIS AppPools] FOR LOGIN [DEV1\IIS AppPools]
GO
EXEC sp_addrolemember N'db_datareader', N'DEV1\IIS AppPools'
GO
EXEC sp_addrolemember N'db_datawriter', N'DEV1\IIS AppPools'
GO
...