Создание пользователя для отдельной базы данных

9

Я довольно новичок в работе с MSSQL и на данный момент имею версию 2012 года. Я пытаюсь создать пользователя для отдельной базы данных и предоставить этому пользователю доступ только к этой базе данных.

Я вызову этот SQL из JAVA, используя подготовленное утверждение.

imellan
источник

Ответы:

12

Чтобы создать отдельного пользователя в SQL Server 2012, который проходит проверку подлинности в базе данных, вы можете сделать следующее:

use YourDatabase
go

create user YourContainedUser
with password = 'yourPassword'
go

contained database authenticationСначала вы должны убедиться, что он включен в экземпляре, а база данных настроена с частичным сдерживанием:

exec sp_configure 'contained database authentication', 1
go
reconfigure
go

alter database YourDatabase
set containment = partial
go

Как только эти команды будут выполнены, вы сможете создать своего пользователя с CREATE USERоператором, как описано выше.

РЕДАКТИРОВАТЬ : Отличный комментарий и баллы @AaronBertrand:

Также ваша строка подключения обязательно должна использовать имя базы данных как часть учетных данных - если вы не укажете базу данных, SQL Server не собирается проверять все базы данных и пытаться выяснить, какую из них вы имели в виду. И ваш код не может выполнять кросс-запросы к базе данных, если это ограничение не ясно.

Томас Стрингер
источник
Спасибо за помощь, я хотел бы прокомментировать, пока я пытался сделать это с помощью инструкций Java JDBC. Я не смог сделать это с помощью PreparedStaments, JDBC был просто недоволен этим. поэтому я использовал объединенную строку в качестве оператора.
Имеллан