Створення користувача для єдиної бази даних


9

Я досить новий, працюючи з MSSQL і на даний момент маю версію 2012 року. Що я намагаюся зробити, це створити користувача для вміщеної бази даних і надати цьому користувачеві доступ лише до цієї бази даних.

Я буду викликати цей SQL від JAVA за допомогою підготовленого оператора.

Відповіді:


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оператора, як пояснено вище.

EDIT : Чудовий коментар та бали від @AaronBertrand:

Також ваш рядок підключення абсолютно повинен використовувати ім'я бази даних як частину облікових даних - якщо ви не вказали базу даних, SQL Server не збирається перевіряти всі бази даних і намагатися з'ясувати, яку саме з них ви мали на увазі. І ваш код не може виконувати будь-які запити міжбазових баз даних, якщо обмеження не ясно.


Дякую за всю допомогу, одне, що потрібно прокоментувати, це, поки я намагався це зробити із заявами Java JDBC. Я не зміг це зробити за допомогою PreparedStaments, JDBC просто незадоволений цим. тому я використав складений рядок як вислів.
имелан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.