Проверить, имеет ли текущее имя входа доступ к базе данных, можно при помощи следующей инструкции:
SELECT HAS_DBACCESS('AdventureWorks');
Результат: 1
Чтобы получить информацию о пользователях базы данных, можно воспользоваться представлением каталога sys.database_principals.
Если нужно временно отключить доступ пользователя к базе данных, можно отозвать разрешение CONNECT для этого пользователя.
Следующий пример отзывает разрешение CONNECT для пользователя Peter:
--Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
--Отзываем разрешение connect для Peter on the database AdventureWorks.
REVOKE CONNECT TO Peter;
Удалить пользователя в базы данных можно при помощи инструкции DROP USER (в SQL Server 2005 не допускается удаление пользователя, который является владельцем схемы базы данных).
Управление пользователями, утратившими связь с именами входа. Пользователями, утратившими связь с именами входа, называются пользователи базы данных, которые не сопоставлены имени входа в текущем экземпляре SQL Server.
В SQL Server 2005 пользователь может утратить связь с именем входа, если сопоставленное ему имя входа будет удалено
|
|
В SQL Server 2005 допускается создание пользователя, не сопоставленного имени входа, с помощью фразы WITHOUT LOGIN. Пользователи, созданные с помощью фразы WITHOUT LOGIN, не считаются пользователями, утратившими связь с именем входа. Эта возможность может быть очень полезна в ситуации, когда необходимо изменить контекст выполнения какого-либо модуля.
Следующий пример создает пользователя, не сопоставленного имени входа.
USE AdventureWorks;
GO
--Создаем пользователя базы данных Paul в базе данных AdventureWorks
--не сопоставляя с ним имени входа в данном экземпляре SQL Server
CREATE USER Paul WITHOUT LOGIN;
Когда имя входа, которое не имеет сопоставленного пользователя, пытается соединиться с базой данных, SQL Server предпринимает попытку подключения с использованием пользователя Guest. Пользователь Guest создается по умолчанию без предоставления разрешений. Можно включить пользователя guest, предоставив ему разрешение CONNECT, как показано ниже.
--Изменяем контекст соединения на базу данных AdventureWorks.
USE AdventureWorks;
GO
--Предоставляем пользователю Guest доступ к базе данных AdventureWorks.
GRANT CONNECT TO Guest;
Роли базы данных