Первоначально я отправил этот вопрос суперпользователю . Однако это не похоже на правильное место.
У меня есть Azure SQL Сервер, который включает одну настраиваемую базу данных (назовем ее my_db
). До этого момента я обращался к этой базе данных с учетными данными администратора сервера. Однако я хочу сделать его более безопасным. Пытаясь сделать это, я хотел создать логин / пользователя с ограничением my_db
. Я попытался сделать следующее:
В базе данных master
через учетные данные администратора сервера
- Создал логин, используя
CREATE LOGIN db_login WITH password 'somePassword';
В другой моей базе данных (my_db
) с использованием учетных данных администратора сервера
- Создан пользователь с использованием
CREATE USER db_login_user FROM LOGIN db_login;
- Разрешить чтение, написать и разрешения владельца с помощью следующих утверждений:
EXEC sp_addrolemember 'db_datareader', 'db_login_user'
EXEC sp_addrolemember 'db_datawriter', 'db_login_user'
EXEC sp_addrolmember 'db_owner', 'db_login_user'
Сейчас я пытаюсь войти через Azure Data Studio. Однако я получаю следующие результаты:
При использовании db_login_user
Ошибка входа для пользователя db_login_user.
При использовании db_login
Принципал сервера «db_login» не может получить доступ к базе данных «my_db» в текущем контексте безопасности. Невозможно открыть базу данных "my_db", запрошенную логином. Не удалось войти в систему. Ошибка входа для пользователя db_login.
Я могу успешно получить доступ к базе данных, используя кредиты администратора сервера. Однако я еще раз пытаюсь сделать это более безопасным. В настоящее время я не понимаю, почему я не могу подключиться к базе данных с использованием нового пользователя / имени входа. Кроме того, я не понимаю, следует ли мне пытаться войти в систему с помощью db_login
или db_login_user
.
Как мне создать пользователя с учетными данными, ограниченными одной базой данных на сервере?
Спасибо!