Управление пользователями базы данных

Проверить, имеет ли текущее имя входа доступ к базе данных, можно при помощи следующей инструкции:

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;

Роли базы данных


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: