Добавление имени входа к серверной роли. Добавить имя входа к существующей серверной роли можно при помощи системной хранимой процедуры sp_addsrvrolemember.
Пример добавляет Mary к серверной роли sysadmin:
EXECUTE sp_addsrvrolemember "Mary", "sysadmin";
Удаление имени входа из серверной роли. Чтобы удалить имя входа из серверной роли, можно использовать хранимую процедуру sp_dropsrvrolemember.
Пример удаляет пользователя Mary из серверной роли sysadmin:
EXECUTE sp_dropsrvrolemember "Mary", "sysadmin";
Запрещение доступа пользователям.
В некоторых ситуациях, например, когда пользователь увольняется из организации, необходимо запретить доступ определенному имени входа. Если этот запрет временный, можно не удалять имя входа из экземпляра, а просто отключить его.
При отключении доступа свойства имени входа и его сопоставление пользователям базы данных сохраняются.
Повторно включив это имя входа, можно работать с прежними свойствами. Чтобы отключить и включить имя входа, используется инструкция ALTER:
|
|
Отключаем имя входа
ALTER LOGIN Mary DISABLE;
Включаем имя входа
ALTER LOGIN Mary ENABLE;
Можно проверить, отключены ли имена входа, выполнив запрос к представлению каталога sql_logins, как показано в следующем примере:
1. Отключаем имя входа
ALTER LOGIN Mary DISABLE; GO
2. Выполняем запрос к системному представлению каталога
SELECT * FROM sys.sql_logins
WHERE is_disabled=1; GO
3. Включаем имя входа
ALTER LOGIN Mary ENABLE;
Если необходимо удалить имя входа из данного экземпляра, следует использовать инструкцию DROP LOGIN.
Следующий пример удаляет имя входа.
DROP LOGIN Mary;
При удалении имени входа SQL Server 2005 не удаляет пользователей базы данных, сопоставленных этому имени входа.
Выполнив запрос системной функции IS_SRVROLEMEMBER можно узнать, принадлежит текущий пользователь к одной из серверных ролей.
Пример кода Transact SQL возвращает значение 1, если текущее имя входа принадлежит к серверной роли sysadmin, и значение 0 в противном случае.
SELECT IS_SRVROLEMEMBER ('sysadmin');
Управление доступом к базам данных.
Одного предоставления доступа к экземпляру SQL Server будет недостаточно для приложения, которому необходим доступ к данным. Предоставив доступ к экземпляру SQL Server, необходимо предоставить доступ к определенным базам данных.
Доступ к базам данных предоставляется посредством добавления пользователей базы данных и сопоставления пользователям базы данных имен входа.