Настройте права входа пользователя и хранимые процедуры на SQL Server
Я разработчик программного обеспечения, заканчиваю веб-приложение. Приложение использует базу данных "DB1" в моем SQL Server 2008 "SQLServer_1".
Я хотел бы создать пользователя с ограниченными правами, который веб-приложение будет использовать в строке подключения. Этим пользователям будет разрешено выполнять список хранимых процедур, больше ничего. Таким образом, пользователь не должен иметь права выполнять adhoc SQL или другие хранимые процедуры из этого списка.
У меня есть небольшая путаница между "пользователем" и "логином", я действительно не знаю, где я должен создать новую "учетную запись".
Какими шагами я должен следовать?
Заранее спасибо.
2 ответа
Все сводится к объему. Логин - это учетная запись уровня сервера, а пользователь - учетная запись уровня базы данных. Пользователь должен быть привязан к логину, поэтому сначала вы создадите свой логин (и в то же время создадите способ аутентификации на сервере). Далее в базе данных вашего приложения вы создадите пользователя. Когда вы сделаете это, вам будет предоставлен выбор, какой логин представляет этот пользователь. Вы выберете логин, который вы ранее создали. Затем вы можете назначить разрешения хранимым процедурам, которые вы хотите, чтобы они могли выполнять. Конечно, есть менее простой способ сделать это:
create login [your login name here] from windows; --if the login is a Windows account
create login [your login name here] with password 'some super secret password'; --if not a Windwos account
use [DB1];
create user [your login name here] for login [your login name here];
grant execute on [your stored procedure here] to [your login name here];
grant execute on [another stored procedure here] to [your login name here];
...
Я не уверен, что вы имеете в виду? Если вы не знаете различий между "пользователем", "логином" и "ролью", следуйте отличной документации от Microsoft. Оттуда вы можете перейти к любой другой связанной теме, такой как предоставление прав на выполнение хранимых процедур.