Назад | Перейти на главную страницу

Какие разрешения необходимы для моей базы данных SQL Server 2005 для веб-пользователя?

У меня есть строка подключения в моем коде asp.net, которая просматривает базу данных SQL Server 2005. Я создал UserName с именем WebUser и предоставил ему db_datawriter и db_datareader в SQL Server 2005. Как в разделе «Вход», так и в базе данных пользователь должен иметь возможность читать и иметь возможность делать обновления? Это все, что мне нужно, или правильное решение?

Строка подключения будет выглядеть так.

<add name="ConnectionStringName" connectionString="DataSource=localhost;
 Initial Catalog=DBName;User ID=WebUser; Password=mypassword; 
 Integrated Security=FALSE" 
 providerName="System.Data.SqlClient"/>
</connectionStrings>

Если вы хотите, чтобы ваша база данных была загружена или удалена хакером, то да, это все, что вам нужно сделать.

Если вы хотите, чтобы ваша база данных была защищена от всевозможных атак, вам нужно создать хранимые процедуры для обработки всех вставок, обновления и удаления данных в базе данных, а затем вызывать эти хранимые процедуры вместо доступа к таблицам. прямо.

Затем удалите пользователя из фиксированных ролей базы данных db_datareader и db_datawriter. Создайте новую роль (вы можете называть ее как хотите) и сделайте своего пользователя участником этой роли. Затем предоставьте этой роли доступ на выполнение ко всем хранимым процедурам в базе данных. Код для предоставления роли (или пользователю) доступа для запуска хранимой процедуры:

GRANT EXEC ON {ProcedureName} TO {User Or Role Name}

Комментарии mrdenny вполне верны, если вы можете это осуществить. Если вы разрабатываете систему с нуля, используйте SP и не предоставляйте доступ к базовым таблицам / представлениям.

Во многих случаях это неэффективное решение. Если вашему приложению требуется доступ к базовым таблицам / представлениям, убедитесь, что это минимальные права. Используйте индивидуальные права на схему, а не на db_datareader и db_datawriter.

Ваше приложение должно работать под учетной записью Windows, предназначенной только для приложений, и, вероятно, вам потребуется предоставить SELECT, INSERT, UPDATE, DELETE, EXECUTE и REFERENCES для схемы.

Если вам нужен только доступ к таблицам / представлениям для отчетов, запустите отчеты от имени другого пользователя и предоставьте который пользователь с правами CRUD.