В MS SQL Server поддерживаются 2 режима: интегрированный, называемый Windows NT Authentication Mode (Windows NT Authentication), и смешанный, Mixed Mode (Windows NT Authentication and SQL Server Authentication). Алгоритм проверки аутентификации пользователя в MS SQL Server приведен на рисунке 1.
Рисунок 5 Алгоритм проверки аутентификации пользователя
В стандарте SQL определены два оператора: GRANT и REVOKE соответственно предоставления и отмены привилегий.
Оператор предоставления привилегий имеет следующий формат:
GRANT {<список действий>|ALL PRIVILEGES}
ON <имя_объекта> ТО {<имя_пользователя>|<имя_роли>}
[WITH GRANT OPTION]
Здесь список действий определяет набор действий из общедопустимого перечня действий над объектом данного типа.
Параметр ALL PRIVILEGES указывает, что разрешены все действия из допустимых для объектов данного тина.
<имя_объекта> — задает имя конкретного объекта: таблицы, представления, хранимой процедуры, триггера.
<имя_пользователя> или <имя_роли> определяет, кому предоставляются данные привилегии.
Параметр WITH GRANT OPTION является необязательным и определяет режим, при котором передаются не только права на указанные действия, но и право передавать эти права другим пользователям. Передавать права в этом случае пользователь может только в рамках разрешенных ему действий.
|
|
Для отмены ранее назначенных привилегий в стандарте SQL определен оператор REVOKE. Оператор отмены привилегий имеет следующий синтаксис:
REVOKE {<список операций>|ALL PRIVILEGES}
ON <имя_объекта>
FROM {<список пользователей>|<имя_роли>} {CASCADE|RESTRICT}
Параметры CASCADE или RESTRICT определяют, каким образом должна производиться отмена привилегий. Параметр CASCADE отменяет привилегии не только пользователя, который непосредственно упоминался в операторе GRANT при предоставлении ему привилегий, но и всем пользователям, которым этот пользователь присвоил привилегии, воспользовавшись параметром WITH GRANT OPTION.
Пример использования команд назначения и отмены прав доступа:
GRANT INSERT ON Tab1 TO user2
REVOKE INSERT ON Tab1 TO user2
Ход работы
1 Определить пользователей, которые будут обращаться к базе данных, и права доступа для них.
Назначить для каждого уникальное имя (Login) и пароль (Password).
2 Определить объекты базы данных, к которым будет предоставлено право доступа для каждого пользователя.
3 Определить операции над объектами, разрешенные для доступа каждого пользователя.
Сформулировать права доступа, исходя из выбранных операций.
4 Создать пользователей, предложенных в пункте 2.
5 Назначить созданным пользователям права доступа, определенные в пункте 3.
6 Создать роль. Предоставить роли право запуска хранимых процедур.
7 Добавить к роли нескольких пользователей, проверить состояние их привилегий.
|
|
8 Рассмотреть алгоритм входа пользователя в систему, найти ошибку, исправить и пояснить.
9 Оформить подробный отчет и сделать вывод по выполненной работе.
Контрольные вопросы
1 Какие правила безопасности необходимо установить для обеспечения сохранности данных базы данных?
2 Вопросы безопасности?
3 Где храниться информация о пользователях и паролях?
4 Способы регистрации пользователей в MS SQL Server?
5 Способы создания пользователей.
6 Виды прав, предоставляемых пользователям и ролям.
7 Способы предоставления прав пользователям и ролям.
8 Отмена прав пользователей и ролей.
9 Виды ролей и их назначение.
10 Можно ли изменить или установить право использовать триггер пользователю, который не создавал этот объект?