Лекция 6. Система безопасности в базах данных.ppt
- Количество слайдов: 54
Система безопасности в базах данных Лекция 1
План лекции • • Настройка по умолчанию Система безопасности MS SQL Server Аутентификация пользователя Роли сервера Доступ к базе данных Управление пользователями баз данных Разрешения пользователя Базы данных на основе Microsoft SQL Server 2008. Лекция 1 2
Отключенные средства механизма баз данных • • • • Удаленные соединения Выделенное подключение администратора (DAC). NET Framework Database Mail SQLMail Service Broker Подключаемость HTTP Зеркальное отображение баз данных Web Assistant Расширенная процедура xp_cmdshell Ad Hoc Remote Queries Расширенные процедуры OLE Automation Расширенные процедуры SMO и DMO Базы данных на основе Microsoft SQL Server 2008. Лекция 1 3
Система безопасности MS SQL Server Базы данных на основе Microsoft SQL Server 2008. Лекция 1 4
Система безопасности MS SQL Server • Любая система хранения информации должна быть максимально защищена как от случайного, так и от намеренного повреждения или искажения данных • При планировании базы данных необходимо четко определять полномочия каждого пользователя системы Базы данных на основе Microsoft SQL Server 2008. Лекция 1 5
Система безопасности MS SQL Server В MS SQL Server предусмотрено три уровня безопасности: • аутентификация при регистрации • роли сервера • разрешение на доступ к базе данных, поддерживаемой сервером • полномочия (разрешения) пользователя Базы данных на основе Microsoft SQL Server 2008. Лекция 1 6
Аутентификация пользователя Базы данных на основе Microsoft SQL Server 2008. Лекция 1 7
Аутентификация пользователя • Аутентификация пользователя – это процесс, при котором пользователь в зависимости от указанного имени пользователя (login) и пароля допускается или нет к установлению соединения c MS SQL Server Базы данных на основе Microsoft SQL Server 2008. Лекция 1 8
Аутентификация пользователя MS SQL Server может работать в двух режимах аутентификации пользователей: • режим аутентификации Windows NT (Windows Authentication) • режим аутентификации средствами MS SQL Server (SQL-Server Authentication) Базы данных на основе Microsoft SQL Server 2008. Лекция 1 9
Аутентификация пользователя • При аутентификации средствами MS SQL Server учетную запись и пароль создает администратор баз данных MS SQL Server • При аутентификации средствами Windows NT учетную запись и пароль создает системный администратор сети Базы данных на основе Microsoft SQL Server 2008. Лекция 1 10
Аутентификация пользователя • При установке MS SQL Server создается лишь одна учетная запись пользователя для входа – sa (system administrator – системный администратор) Базы данных на основе Microsoft SQL Server 2008. Лекция 1 11
Аутентификация пользователя • Учетная запись sa предназначена для выполнения функций администрирования сервера и имеет полные права на доступ ко всем объектам всех баз данных сервера Базы данных на основе Microsoft SQL Server 2008. Лекция 1 12
Аутентификация пользователя Существует несколько правил безопасности, которые следует соблюдать: • одно имя (login) на одного пользователя • ограничение по времени действия пароля • ограничения на минимальную длину и сложность пароля • ограничения на максимальное количество попыток входа в систему Базы данных на основе Microsoft SQL Server 2008. Лекция 1 13
Роли сервера Базы данных на основе Microsoft SQL Server 2008. Лекция 1 14
Роли сервера • Роль – это определенные права на выполнение операторов и работу с объектами базы данных • Роли объединяют нескольких пользователей в группу, наделенную определенными правами • Одному пользователю может быть назначено несколько ролей Базы данных на основе Microsoft SQL Server 2008. Лекция 1 15
Роли сервера Существует 8 постоянных ролей сервера, которые предоставляют административные привилегии на уровне сервера: • sysadmin – может выполнять любые действия на MS SQL Server • setupadmin – управляет связанными серверами (linked servers) и процедурами, которые выполняются вместе с запуском сервера Базы данных на основе Microsoft SQL Server 2008. Лекция 1 16
Роли сервера Постоянные роли сервера: • securityadmin – может создавать и управлять логинами, читать журнал ошибок и создавать БД • processadmin – обладает правами управления процессами внутри MS SQL Server • dbcreator – разрешено создание и изменение баз данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 17
Роли сервера Постоянные роли сервера: • diskadmin – управляет файлами баз данных: назначает файлы в группы, присоединяет/отсоединяет базы данных • bulkadmin – позволяет выполнять команду BULK INSERT для вставки сразу большого количества записей в таблицу Базы данных на основе Microsoft SQL Server 2008. Лекция 1 18
Доступ к базе данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 19
Доступ к базе данных • Доступ к базе данных предоставляется пользователю базы данных (не путать с именем входа в MS SQL Server), наделенному определенными правами, которые определяются принадлежностью пользователя к роли базы данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 20
Доступ к базе данных Роли баз данных предоставляют наборы административных привилегий на уровне базы данных: • db_owner – включает в себя права все других ролей базы данных. Пользователь получает права владельца базы Базы данных на основе Microsoft SQL Server 2008. Лекция 1 21
Доступ к базе данных Роли баз данных: • db_accessadmin – похожа на серверную роль securityadmin, за исключением того, что ограничена одной базой данных. Она не позволяет создавать новые логины MS SQL Server, но разрешает добавлять новых пользователей в базу данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 22
Доступ к базе данных Роли баз данных: • db_datareader – разрешает выполнение оператора SELECT для всех таблиц базы данных • db_datawriter – разрешает выполнять INSERT, UPDATE и DELETE для всех таблиц БД • db_ddladmin – позволяет добавлять, удалять и изменять объекты в БД Базы данных на основе Microsoft SQL Server 2008. Лекция 1 23
Доступ к базе данных Роли баз данных: • db_securityadmin – еще одна роль похожая на серверную роль securityadmin. В отличие от db_accessadmin, она не разрешает создавать новых пользователей в базе, но позволяет управлять ролями и членством в ролях, а также правами на доступ к объектам базы данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 24
Доступ к базе данных Роли баз данных: • db_backupoperator – позволяет создавать резервные копии базы данных • db_denydatareader – запрещает выполнение SELECT для всех таблиц базы данных • db_denydatawriter – запрещает выполнение INSERT, UPDATE и DELETE для всех таблиц базы данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 25
Доступ к базе данных • Просмотр информации о ролях баз данных (как встроенных, так и определенных пользователем) осуществляется с помощью процедуры sp_helprole • Просмотр членов ролей баз данных – sp_helprolemember Базы данных на основе Microsoft SQL Server 2008. Лекция 1 26
Управление пользователями баз данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 27
Управление пользователями баз данных • По умолчанию MS SQL Server имеет специальную учетную запись пользователя в базе данных: владелец БД (dbo – data base owner) • Владелец базы данных имеет полную власть над БД, им автоматически становится тот, кто создал эту базу данных Базы данных на основе Microsoft SQL Server 2008. Лекция 1 28
Управление пользователями баз данных Для создания пользователя БД используют процедуры: • sp_adduser • sp_grantdbaccess Базы данных на основе Microsoft SQL Server 2008. Лекция 1 29
Управление пользователями баз данных sp_adduser [@loginame=] ‘учетная запись для входа’ [, [@name_in_db=] ‘имя пользователя’] [, [@grpname=] ‘роль’] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 30
Управление пользователями баз данных sp_grantdbaccess [@loginame=] ‘учетная запись для входа’ [, [@name_in_db=] ‘имя пользователя’] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 31
Управление пользователями баз данных • Вместо рассмотренных процедур рекомендуется использовать конструкцию CREATE USER Базы данных на основе Microsoft SQL Server 2008. Лекция 1 32
Управление пользователями баз данных CREATE USER user_name [ { { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = schema_name ] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 33
Управление пользователями баз данных • Отображение списка пользователей осуществляется в результате выполнения процедуры sp_helpuser Базы данных на основе Microsoft SQL Server 2008. Лекция 1 34
Управление пользователями баз данных • Для удаления пользователя БД используются процедура: sp_dropuser @name_in_db=] ‘имя пользователя’ Базы данных на основе Microsoft SQL Server 2008. Лекция 1 35
Управление пользователями баз данных • Вместо процедуры sp_dropuser рекомендуется использовать следующую конструкцию: DROP USER ‘имя пользователя’ Базы данных на основе Microsoft SQL Server 2008. Лекция 1 36
Управление пользователями баз данных • Присвоение пользователю определенной роли осуществляется процедурой: sp_addrolemember [@rolename=] ‘роль’, [@membername=] ‘пользователь’ Базы данных на основе Microsoft SQL Server 2008. Лекция 1 37
Управление пользователями баз данных • Отмена присвоенной пользователю роли может быть выполнена с помощью процедуры: sp_droprolemember [@rolename=] ‘роль’, [@membername=] ‘пользователь’ Базы данных на основе Microsoft SQL Server 2008. Лекция 1 38
Управление пользователями баз данных • С целью упрощения администрирования системы безопасности сервера администратор имеет возможность создавать пользовательские роли баз данных и наделять их определенным набором полномочий Базы данных на основе Microsoft SQL Server 2008. Лекция 1 39
Управление пользователями баз данных • Для этого используется хранимая процедура sp_addrole [@rolename=] ‘роль’ • Для удаления, созданной ранее роли: sp_droprole [@rolename=] ‘роль’ Базы данных на основе Microsoft SQL Server 2008. Лекция 1 40
Разрешения пользователя Базы данных на основе Microsoft SQL Server 2008. Лекция 1 41
Разрешения пользователя • Выполнение операторов языка Transact-SQL и действий в системе может быть выполнено только после успешной аутентификации пользователя • При получении оператора от пользователя сервер проверяет, имеет ли право пользователь на выполнение соответствующих действий Базы данных на основе Microsoft SQL Server 2008. Лекция 1 42
Разрешения пользователя • Действия, которые могут быть выполнены пользователем, определяются правами, выданными ему непосредственно, или роли, в которой он состоит • Таким образом, пользователь должен иметь соответствующие разрешения на выполнение тех или иных действий Базы данных на основе Microsoft SQL Server 2008. Лекция 1 43
Разрешения пользователя Права в MS SQL Server можно разделить на три категории: • разрешения для объектов • разрешения для команд Transact-SQL • неявные разрешения Базы данных на основе Microsoft SQL Server 2008. Лекция 1 44
Разрешения пользователя Для различных объектов применяются следующие наборы разрешений: • SELECT – выполнение запросов • INSERT – добавление данных в таблицы • UPDATE – изменение данных в таблице • DELETE – удаление данных из таблицы • ALL – любые разрешения Базы данных на основе Microsoft SQL Server 2008. Лекция 1 45
Разрешения пользователя • Управление разрешениями пользователя на доступ к объектам базы данных осуществляется с помощью команды GRANT Базы данных на основе Microsoft SQL Server 2008. Лекция 1 46
Разрешения пользователя GRANT { разрешение [, . . . n] }{ ON таблица | представление [(поле[, . . . n])] | ON [хранимая процедура[, …n] } TO учетная запись[, . . . n][WITH GRANT OPTION] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 47
Разрешения пользователя • Примеры: GRANT select, update on Adventure. Works. . Production. Work. Order to Test. User GRANT select on Adventure. Works. . Production. Product (Name, List. Price) to Andy Базы данных на основе Microsoft SQL Server 2008. Лекция 1 48
Разрешения пользователя • Для запрещения пользователю доступа к объектам базы данных используется команда DENY Базы данных на основе Microsoft SQL Server 2008. Лекция 1 49
Разрешения пользователя DENY { разрешение [, . . . n] }{ ON таблица | представление [(поле[, . . . n])] | ON [хранимая процедура[, …n] } TO учетная запись[, . . . n][CASCADE] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 50
Разрешения пользователя • Неявное отклонение подобно запрещению доступа с тем отличием, что оно действует только на том уровне, на котором определено • Если пользователю на определенном уровне доступ отклонен, то он может его получить на другом уровне, например, через членство в роли, имеющей на это право Базы данных на основе Microsoft SQL Server 2008. Лекция 1 51
Разрешения пользователя • По умолчанию доступ пользователя к данным неявно отклонен • Для неявного отклонения доступа к данным используется команда REVOKE Базы данных на основе Microsoft SQL Server 2008. Лекция 1 52
Разрешения пользователя REVOKE [GRANT OPTION FOR] { разрешение [, . . . n] }{ ON таблица | представление [(поле[, . . . n])] | ON [хранимая процедура[, …n] } TO учетная запись[, . . . n][CASCADE] Базы данных на основе Microsoft SQL Server 2008. Лекция 1 53
Разрешения пользователя • Необходимо помнить следующий принцип: разрешение имеет самый низкий приоритет, а запрещение – самый высокий • Доступ к данным может быть получен только явным его предоставлением при отсутствии запрещения доступа на любом другом уровне • Если доступ явно не предоставлен, пользователь не может работать с данными Базы данных на основе Microsoft SQL Server 2008. Лекция 1 54
Лекция 6. Система безопасности в базах данных.ppt