Создание имени пользователя SQL Server 2005 для резервного копирования и восстановления в одной базе данных
У меня есть сервер базы данных SQL Server 2005 с несколькими базами данных на сервере. Мне нужно создать логин пользователя 'test1' со следующими ограничениями:
Логин 'test1' должен быть владельцем только базы данных 'ABC' и никакой другой базы данных на сервере.
Логин 'test1' не должен иметь доступа к какой-либо другой базе данных на сервере.
Логин 'test1' должен иметь возможность создавать резервные копии (файлы данных и журналов) и восстанавливать только базу данных 'ABC'. Логин 'test1' не должен иметь права на резервное копирование или восстановление любой другой базы данных на сервере.
Я создал логин с именем test1 и открыл окно свойств. В разделе "Роли сервера" проверяется общедоступность, а в разделе "Сопоставление пользователей" проверяется база данных ABC, а по умолчанию используется схема db_owner. Используя скрипт t-sql, я успешно выполнил резервное копирование и восстановил базу данных ABC. Когда я попытался восстановить другую базу данных, используя другую резервную копию базы данных, у меня все получилось, хотя я не мог получить доступ к другой базе данных.
Любые идеи о том, как решить эту проблему?
Как мне создать и установить правильные разрешения для этого имени пользователя? Нужно ли мне создавать собственный скрипт t-sql или это можно сделать с помощью интерфейса GUI?
1 ответ
Логины используются на уровне сервера, а пользователи - на уровне базы данных. Вы можете прочитать об этом здесь https://stackoverflow.com/questions/5247404/sql-server-server-login-vs-database-login
Вы можете сделать это в Management Studio или с помощью t-sql. В обозревателе объектов перейдите в "Безопасность" -> "Логины". Щелкните правой кнопкой мыши -> "Новый логин". После того, как вы создали логин test1, щелкните правой кнопкой мыши базу данных ABC -> Свойства -> Файлы и выберите владельца test1.
Логин test1 не будет иметь доступа к другим базам данных, пока вы не создадите для него пользователя в этих базах данных.