Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Управление разрешениями для экземпляра

Предоставив доступ пользователю к экземпляру SQL Server необходимо предоставить ему доступ к каким-либо данным. Для выполнения этой задачи SQL Server предоставляет серверные роли на уровне экземпляра. Серверные роли фиксированы, на уровне экземпляра нельзя создать новые роли. В табл. 12.1. перечислены фиксированные серверные роли, созданные SQL Server.

Таблица 12.1.

Фиксированные серверные роли

Фиксированная серверная роль

Описание

bulkadmin

Может выполнять предложение BULK INSERT (операции массовой вставки)

dbcreator

Может создавать, изменять, удалять и восстанавливать базы данных

diskadmin

Может управлять файлами на диске (создавать, изменять и удалять)

processadmin

Может прерывать запущенные процессы SQL Server.

securityadmin

Может управлять именами входа и назначать разрешения

serveradmin

Может конфигурировать параметры сервера, включая настройки полнотекстового поиска и останов сервера

setupadmin

Может конфигурировать связанные серверы и выполнять системные и расширенные хранимые процедуры и поцедуры автозапуска

sysadmin

Может выполнять на сервере любые действия

Получение информации о принадлежности к серверной роли

Выполнив запрос системной функции IS_SRVROLEMEMBER можно узнать, принадлежит текущий пользователь к одной из серверных ролей. Следующий пример кода T-SQL возвращает значение 1, если текущее имя входа принадлежит к серверной роли sysadmin, и значение 0 в противном случае.

SELECT IS_SRVROLEMEMBER (‘sysadmin’);

Добавить имя входа к существующей серверной роли можно при помощи системной хранимой процедуры sp_addsrvrolemember. Следующий пример добавляет Mary к серверной роли sysadmin:

EXECUTE sp_addsrvrolemember ‘Mary’, ‘sysadmin’;

Чтобы удалить имя входа из серверной роли, можно использовать хранимую процедуру sp_dropsrvrolemember. Следующий пример удаляет пользователя Mary из серверной роли sysadmin:

EXECUTE sp_dropsrvrolemember ‘Mary’, ‘sysadmin’;

SQL Server предоставляет более гранулярную структуру разрешений, что позволяет с большей точностью контролировать операции входа. Разрешениями можно манипулировать при помощи операторов GRANT, DENY и REVOKE. Информация о серверных разрешениях доступна из представления каталога sys.server_permissions.

В следующем примере пользователю Mary предоставляются права на создание и выполнение трассировок в SQL Server Profiler (такие разрешения предоставляются при установке текущей базы данных master):

USE master; GO GRANT ALTER TRACE TO Mary;

Пользователи могут получить информацию о своих разрешениях с помощью функции fn_my_permissions. Следующий пример отображает разрешения пользователя:

SELECT * FROM fn_my_permissions (NULL, ‘SERVER’);

Те же действия можно проделать и с помощью SQL Server Management Studio. Для этого нужно:

  • запустить приложение SQL Server Management Studio;

  • в панели Обозреватель объектов (Object Explorer) открыть вкладку Безопасность (Security) – Имена входа (Logins);

  • выбрать в списке имён входа интересующее и в контекстном меню команду Свойства (Proparties).

  • На экране появится соответвующее окно (рис. 12.4).

рис. 12.4.  Просмотр и изменение свойств точки входа

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]