785.47K
Category: databasedatabase

л10

1.

Способы контроля доступа к
данным и управления
привилегиями

2.

Каждый пользователь проходит два этапа проверки системы
безопасности при доступе к данным: аутентификация и
получение доступа к данным
Аутентификация относится к уровню работы всего сервера
СУБД. На первом этапе пользователь идентифицирует себя с
помощью логического имени (login) и пароля (password).
login
password
учетная запись

3.

Аутентификация не дает пользователю права доступа к каким бы то
ни было данным.
Для получения доступа необходимо, чтобы учетной записи
пользователя соответствовал пользователь базы данных (database
user) т.е. совокупность разрешений и запретов на работу с данными
в конкретной базе данных.
На втором этапе учетная запись пользователя отображается в
пользователя базы данных, и получает все привилегии,
соответствующие этому пользователю базы данных. Второй этап
задействует систему безопасности конкретной базы данных, а не
всего сервера СУБД.

4.

Клиент все же может получить доступ к базе данных под
гостевым именем guest (если оно не запрещено
администратором БД).
Гостевой вход позволяет минимальный доступ к данным
только в режиме чтения.

5.

MS SQL-Server поддерживает два
режима аутентификации –
Аутентификация Windows
В процессе установки сервера
баз данных по умолчанию
назначается режим
аутентификации, при котором
пользователи, успешно
прошедшие проверку
подлинности при входе в
операционную систему,
автоматически получают право
соединения с сервером.
Аутентификация SQL Server
Предполагает дополнительную
регистрацию пользователей
средствами сервера баз данных,
выдачу им имен учетных записей и
паролей с последующей проверкой
подлинности пользователей при их
соединении с сервером

6.

Для создания пользователя в среде MS SQL Server :
Создать в базе данных учетную запись пользователя
системной хранимой процедурой
sp_addlogin[@login=] 'учетная_запись‘
[, [@password=] 'пароль'][, [@defdb=]
Добавить этого пользователя во все необходимые базы
данных системной хранимой процедурой
sp_adduser[@loginame=] 'учетная_запись'[,
[@name_in_db=] 'имя_пользователя'][, [@grpname=]
'имя_роли']
Предоставить ему в каждой базе данных
соответствующие привилегии .

7.

8.

Пользователь, который создает объект в базе данных
(таблицу, хранимую процедуру, вид…), становится его
владельцем. Владелец объекта (dbo) имеет все права
доступа к созданному им объекту.
Чтобы пользователь мог создать объект, владелец базы
данных (dbo) должен предоставить ему
соответствующие права. Владелец объекта не имеет
специального с пароля или особых прав доступа. Он неявно
имеет полный доступ.

9.

Владелец объекта должен явно
предоставить доступ другим пользователям.
SQL Server позволяет передавать права владения от
одного пользова -теля другому с помощью процедуры:
sp_changeobjectowner[@objname=]
‘имя_объекта’[@newowner=] ‘имя_владельца’

10.

В системе SQL-сервер существуют дополнительные объекты – роли,
которые определяют уровень доступа к объектам SQL-сервера.
Роль позволяет объединить в одну группу пользователей, выполняющих
одинаковые функции.
В SQL Server реализовано два вида стандартных ролей:
на уровне сервера и на уровне баз данных. При установке SQL
Server создаются:
-фиксированные роли сервера
(например, sysadmin с правом выполнения любых функций SQL-сервера)
-фиксированные роли базы данных (db_owner с правом полного
доступа к базе данных
или db_accessadmin с правом добавления и удаления пользователей ).

11.

Среди фиксированных ролей базы данных существует роль public- ее
членами являются все пользователи, имеющие доступ к базе данных.
Пользователей базы данных нельзя удалить из роли public
Для хранения информации об учетных записях
пользователей и их членстве в фиксированных серверных
ролях используется системная таблица SysLogins системной
базы данных Master. Каждая строка этой таблицы содержит
информацию об одной учетной записи

12.

СУБД должна поддерживает механизм, гарантирующий,
что доступ к базе данных смогут получить только
те пользователи, которые имеют соответствующее разрешение.
Язык SQL включает операторы GRANT и REVOKE,
предназначенные для организации защиты таблиц в базе
данных

13.

Механизм
защиты
построен
на
использовании
идентификаторов
пользователей,
предоставляемых им прав владения и привилегий.
Каждый созданный в среде SQL объект имеет своего владельца,
который изначально является единственной персоной, знающей
о существовании данного объекта и имеет право выполнять с
ним любые операции.

14.

15.

Схемы используются в модели безопасности компонен та
Database Engine для упрощения взаимоотношений между
пользователями и объектами.
Схема - это коллекция объектов базы данных, имеющая
одного владельца и формирующая одно пространство имен.
Компонент Database Engine поддерживает именованные
схемы

16.

Отделение пользователей базы данных от схем дает
значительные преимущества, среди них удаление
пользователя базы данных не требует переименования
объектов, содержащихся в схеме этого пользователя.
Каждая база данных имеет схему по умолчанию, которая
используется для определения имен объектов, ссылки на
которые делаются без указания их полных уточненных имен.

17.

SQL Server поставляется с десятью предварительно определенными
схемами, имеющими одинаковое имя со встроенными
пользователями и ролями базы данных. Схемы, имеющие
одинаковые имена с предопределенными ролями базы данных,
можно удалить. Нельзя удалить следующие схемы:
dbo, guest, sys, INFORMATION_SCHEMA
Если их удалить из шаблона базы данных, эти схемы не появятся в
новых базах данных.
Схемы sys и INFORMATION_SCHEMA зарезервированы для
системных объектов. В этих схемах нельзя создавать и удалять
объекты.
Схема dbo схема по умолчанию для вновь созданной базы
данных. Владельцем схемы dbo является учетная запись
пользователя dbo. Схемой по умолчанию для пользователей,
созданных с помощью команды Transact-SQL CREATE USER,
является dbo.

18.

Привилегиями, или правами, называются
действия,которые пользователь имеет право выполнять в отношении
данной таблицы базы данных или представления. Набор привилегий:
SELECT – право выбирать данные из таблицы;
INSERT – право вставлять в таблицу новые строки;
UPDATE – право изменять данные в таблице;
DELETE – право удалять строки из таблицы;
REFERENCES – право ссылаться на столбцы указанной таблицы в
описаниях требований поддержки целостности данных;
USAGE – право использовать домены, проверки и наборы символов.

19.

Оператор GRANT применяется для предоставления
привилегий .Обычно его использует владелец таблицы с
целью предоставления доступа к ней другим пользователям .
В языке SQL для отмены
привилегий, предоставленных пользователям посредством
оператора GRANT, используется оператор REVOKE. С помощью
этого оператора могут быть отменены все или некоторые
из привилегий, полученных указанным пользователем раньше.

20.

ALL PRIVILEGES}ON
имя_объектаTO
{<идентификатор_поль
зователя> [,...n]| PUBLIC}[ WITH
GRANT OPTION]
{SELECT | DELETE | INSERT
[(имя_столбца[,...n])] | UPDATE
[(имя_столбца[,...n])]}|
REFERENCES
[(имя_столбца[,...n])] | USAGE

21.

Ответьте на вопросы
1. Перечислите основные принципы защиты данных,
обеспечивающие безопасность хранения информации.
2.Какой набор прав определен для пользователя, входящего в
группу PUBLIC.
3.В чем заключается
понятие роли при работе с
многопользовательскими СУБД?
4.Какой
пользователь
обладает
самыми
высокими
полномочиями?
5.Какие операторы определены
в стандарте SQL для
предоставления и отмены привилегий?
6.Какой параметр определяет режим, позволяющий передавать
права другим пользователям?

22.

7.В
чем
заключаются
отличия
в
синтаксисе
оператора
GRANT
для
команд UPDATE и REFERENCES?
8.Каким образом задается привилегия на запуск хранимых
процедур?
9.В
чем
заключается
двухуровневая
настройка
организации доступа к данным в MS SQL Server?
10. Чем отличаются серверные роли и роли для записей
пользователя БД в MS SQL Server? Приведите примеры прав
для серверной роли и роли для учетной записи пользователя
БД.
11. Каким образом выполняется назначение серверных ролей в
MS SQL Server?
English     Русский Rules