Волк В. - Базы данных. Проектирование, программирование, управле. Практикум по проектированию, программированию и администрированию баз данных, включающий примеры и практические задания для самостоятельного выполнения
ГЛАВА 17. ПРАКТИКУМ ПО ЗАЩИТЕ ИНФОРМАЦИИ 17.1. Общие методические указания Структура и содержание. Практикум содержит три практические рабо- ты, отражающие следующие аспекты информационной безопасности баз дан- ных: – архитектура подсистемы защиты информации сервера баз данных (ра- бота № 1); – программные средства управления доступом к данным (работа № 2); – иерархия прав доступа к объектам баз данных (работа № 3). Каждая работа содержит несколько взаимосвязанных заданий, выполне- ние которых направлено на решение поставленных в работе задач и требует освоения и применения соответствующих инструментальных средств админи- стрирования баз данных. Программное обеспечение. Все работы выполняются в системе SQL-Server Management Studio, версия сервера баз данных — не старше 2008R2. Отчет по работе должен содержать: − цели и задачи, описание методики проведения работы, используемых структур данных и инструментальных программных средств; − иллюстративный материал (листинги программных компонентов, выво- димые на экран результаты их работы, графический материал и пр.); − анализ полученных результатов с собственными выводами; − ответы на контрольные вопросы (при их наличии). Защита. Работа выполняется индивидуально, защита работы проводится в форме собеседования по материалу представленного отчета. В процессе за- щиты оценивается полнота и качество выполнения практических заданий, гра- мотность использования инструментальных средств, правильность и обосно- ванность выводов по результатам работы, качество оформления отчета. 17.2. РАБОТА № 1. Подсистема защиты информации сервера БД Цель работы: ознакомление со средствами управления информационной безопасностью на уровне сервера и пользовательских баз данных. Задачи: – освоить компоненты пользовательского интерфейса SQL-Server Management Studio, обеспечивающие возможность просмотра и настройки па- раметров информационной безопасности; – исследовать свойства учетных записей, пользователей и ролей сервера и базы данных; – освоить технику создания и модификации учетных записей сервера, ро- лей и пользователей баз данных соответствующими средствами языка Transact SQL; 11 / 24
228 – освоить программные средства управления членством в ролях; – исследовать объекты системного каталога, ответственные за хранение параметров информационной безопасности. Задание 1. Анализ серверных компонентов системы информационной безопасности 1.1. Выполните вход в систему, используя режим аутентификации Windows. Просмотрите свойства учетных записей (имен входа, logins) сервера. Переименуйте учетные записи. Какие из учетных записей относятся к катего- рии «Учетные записи SQL-Server»? 1.2. Создайте новую учетную запись: выберите для нее режим аутенти- фикации SQL-Server, задайте (и запомните!) пароль и установите свойства учетной записи по своему усмотрению. 1.3. Создайте учетную запись SQL-оператором CREATE LOGIN. 1.4. Просмотрите свойства созданных учетных записей, определите их членство в фиксированных ролях сервера. 1.5. Включите одну из созданных учетных записей в состав членов сер- верной роли Securityadmin, а другую — в состав членов серверной роли Sysadmin. 1.6. Прямым доступом к системной таблице SysLogins базы данных MASTER определите состав и основные параметры: – учетных записей Windows; – учетных записей пользователей Windows; – учетных записей групп Windows; – учетных записей SQL-Server. 1.7. Выполните вход в систему, используя режим аутентификации SQL- Server и новую учетную запись, просмотрите свойства доступных учетных запи- сей. Создайте новую базу данных. Прокомментируйте полученные результаты. 1.8. Просмотрите и проанализируйте свойства серверных ролей Sysadmin, Securityadmin и Public. 1.9. Используя системные хранимые процедуры (табл. 5.2): – определите состав членов всех серверных ролей; – добавьте учетную запись в состав членов роли Securityadmin; – определите перечень разрешений, установленных для серверной роли Securityadmin. 1.10. Ознакомьтесь с перечнем и назначением хранимых процедур и функций информационной безопасности, права на выполнение которых полу- чают члены фиксированной роли сервера Securityadmin (используйте докумен- тацию разработчика technet). 1.11. Сделайте выводы по результатам выполнения задания и сохраните их в отчете по лабораторной работе. 12 / 24
229 Задание 2. Анализ компонентов информационной безопасности уровня базы данных 2.1. Выполните вход в систему, используя режим аутентификации Windows. Активизируйте одну из пользовательских баз данных, созданных при выполнении предыдущих лабораторных работ. Просмотрите свойства пользо- вателей базы данных, их членство в фиксированных ролях базы данных. 2.2. Создайте в контексте этой базы данных нового пользователя, сопо- ставьте его с одной из учетных записей, созданных при выполнении предыду- щего задания, включите его в фиксированную роль db_owner. 2.3. Просмотрите и проанализируйте свойства ролей базы данных db_owner, db_securityadmin и public. 2.4. Используя SQL-команды CREATE USER, CREATE ROLE и ALTER ROLE, создайте нового пользователя базы данных, пользовательскую роль, включите пользователя в состав членов этой роли. 2.5. Прямым доступом к системной таблице SysUsers базы данных опре- делите состав и основные параметры пользователей и ролей. Контрольные вопросы 1. Дайте сравнительные характеристики, назовите преимущества и недо- статки двух режимов проверки подлинности пользователей: аутентификация Windows и аутентификация SQL-Server. 2. Членство в каких серверных ролях позволяет пользователю создавать, удалять и модифицировать учетные записи пользователей? 3. Выполнение каких операций разрешено членам серверной роли public? 4. Перечислите основные объекты и субъекты доступа уровня БД. 5. Какие пользователи автоматически создаются при создании БД? Ка- кими правами обладают эти пользователи? 6. Может ли пользователь базы данных одновременно быть членом не- скольких ролей базы данных? 7. Может ли пользовательская роль базы данных быть членом фиксиро- ванной роли или другой пользовательской роли? 17.3. РАБОТА № 2. Анализ средств управления доступом к данным Цель работы: изучение средств управления правами доступа субъектов к логическим объектам базы данныхMS SQL-Server. Задачи: – освоить компоненты пользовательского интерфейса SQL-Server Management Studio и программные средства, обеспечивающие возможность просмотра и настройки разрешений доступа; – исследовать объекты системного каталога, ответственные за хранение информации о правах доступа. 13 / 24
230 Задание 1. Управление пользователями и ролями БД средствами SQL-Server Management Studio 1.1. Выполните вход в систему, используя режим аутентификации Windows. Активизируйте одну из пользовательских баз данных (или создайте новую). Просмотрите свойства пользователей и фиксированных ролей базы данных. Какие пользователи были созданы сервером самостоятельно, а ка- кие — в результате действий администратора? Определите членство пользова- телей в ролях базы данных. 1.2. Создайте три новые учетные записи SQL-Server, установите для каж- дой из них текущую базу данных в качестве базы данных по умолчанию. Со- здайте в этой базе данных трех новых пользователей, сопоставив их с новыми учетными записями. Включите этих пользователей в состав нескольких фикси- рованных ролей базы данных (по своему усмотрению). 1.3. Создайте пользовательскую роль базы данных, включите в состав ее членов всех трех новых пользователей, а также пользователя guest. Затем уда- лите пользователя guest. 1.4. Прямым доступом к системной таблице SysUsers определите состав пользователей, фиксированных и пользовательских ролей базы данных. 1.5. Сделайте выводы по результатам выполнения задания и сохраните их в отчете по лабораторной работе. Задание 2. Программные средства управления разрешениями уровня базы данных 2.1. Используя системную хранимую процедуру sp_helprotect, определи- те права доступа к данным и права на выполнение операций для пользователя dbo, а также для созданных при выполнении предыдущего задания пользовате- ля и пользовательской роли базы. 2.2. Используя SQL-команды GRANT и DENY, предоставьте и запретите права доступа пользователям (по своему усмотрению), а затем отмените SQL- командой REVOKE некоторые из предоставленных разрешений и запретов. 2.3. Просмотрите информацию о правах доступа к объектам базы данных, используя хранимую процедуру sp_helprotect, системное представление sys.database_permissions и системную функцию fn_builtin_permissions(). 2.4. Выполните вход в систему, используя режим аутентификации SQL- Server и одну из учетных записей пользователей, созданных при выполнении задания 1.2. Активизируйте базу данных, в которой ранее был создан пользова- тель, выполнивший вход в систему, и экспериментально проверьте действие выданных ему разрешений и запретов. 2.5. Повторно выполните задание 2.4, используя учетную запись другого пользователя этой базы данных. 2.6. Сделайте выводы по результатам выполнения задания. 14 / 24
231 17.4. РАБОТА № 3. Исследование иерархии прав доступа к данным MS SQL-Server поддерживает сложную иерархическую систему разреше- ний на выполнение операций с объектами баз данных и множество методов и инструментальных средств управления этими разрешениями. При этом парал- лельно существуют несколько (не всегда строгих) иерархий, например «сер- вер — база данных», «роль — пользователь», «база данных — схема — табли- ца — столбец», «процедура — представление — таблица». Все это позволяет администраторам реализовывать надежные, гибкие и технологичные системы защиты информации, но, с другой стороны, может со- здавать проблемы, связанные с необходимостью понимания и учета приорите- тов разрешений, предоставленных субъектам доступа на разных уровнях и/или разными методами. Цель работы — изучение системы приоритетов разрешений доступа к данным, реализованной в MS SQL-Server. Задачи. При выполнении лабораторной работы ставится комплексная за- дача экспериментального подтверждения, уточнения или опровержения следу- ющих рабочих гипотез, касающихся приоритетов прав доступа к объектам баз данных. Гипотеза № 1. Запрет доступа (Deny) к объекту всегда имеет более вы- сокий приоритет по сравнению с предоставлением (Grant) доступа. Гипотеза № 2. Глобальные права доступа к данным, предоставленные пользователю через членство в фиксированных ролях базы данных, имеют бо- лее высокий приоритет по сравнению с локальными правами, предоставленны- ми ему явно или через членство в пользовательских ролях базы данных. Гипотеза № 3. Права доступа, предоставленные пользователю неявно через членство в пользовательской роли базы данных, имеют более высокий приоритет по сравнению с правами, предоставленными ему явно (персонально). Гипотеза № 4. Права доступа к отдельным столбцам таблицы имеют более низкий приоритет по сравнению с правами, предоставленными на табли- цу в целом. Гипотеза № 5. Право на выполнение (Execute) процедуры или хранимо- го представления, содержащих SQL-оператор доступа к таблице, позволяет поль- зователю получить несанкционированный доступ к этой таблице, несмотря на: – явный запрет (Deny) доступа к этой таблице; – явный запрет на выполнение операций (например, Select); – членство пользователя в фиксированных ролях базы данных DB_denydatareader и DB_denydatawriter. Гипотеза № 6. Право на создание процедуры (Create Proc) позволяет пользователю включить в нее SQL-оператор чтения данных таблицы, доступ к которой ему явно запрещен, и получить таким образом несанкционированный доступ к этой таблице. 15 / 24
232 Задание 1. Спланируйте эксперименты по проверке рабочих гипотез: – определите состав субъектов и объектов доступа и соответствующих разрешений; – подготовьте текстовый документ для формирования отчета по лабора- торной работе с описанием каждого из запланированных экспериментов; – включите в отчет бланки протоколов для регистрации результатов экс- периментов. 2. Подготовьте базу данных для проведения экспериментов (можно ис- пользовать выполненные ранее собственные разработки). 3. Подготовьте SQL-запросы, хранимые представления и процедуры, не- обходимые для проверки рабочих гипотез. 4. Создайте в этой базе данных необходимое количество пользователей (сопоставленных с соответствующими учетными записями SQL-Server) и поль- зовательских ролей. 5. Определите для пользователей и пользовательских ролей соответству- ющие права доступа к объектам базы данных. 6. Распределите пользователей по фиксированным и пользовательским ролям базы данных. 7. Проведите эксперименты, сохраните в отчете их результаты и соб- ственные выводы по каждой из проверяемых гипотез. 16 / 24
233 ПРИЛОЖЕНИЕ А СТАНДАРТНЫЕ ФОРМЫ БЭКУСА — НАУРА (BNF) В BNF-обозначениях используются следующие элементы: – символ «::=» означает равенство по определению. Слева от знака стоит определяемое понятие, справа — собственно определение понятия; – КЛЮЧЕВЫЕ СЛОВА (зарезервированные слова, составляющие часть опе- ратора) записываются прописными буквами; – заполнители конкретных значений элементов и переменных записы- ваются курсивом; – круглые скобки ( ) являются элементом оператора; – фигурные скобки { } указывают на то, что все, находящееся внутри них, является единым целым; – в квадратные скобки [ ]заключаются необязательные элементы опера- тора; – вертикальная черта| указывает на то, что все предшествующие ей элементы списка являются необязательными и могут быть заменены любым другим элементом списка, записанным после этой черты; – троеточие «…» означает, что предшествующая часть оператора может быть повторена любое количество раз; – многоточие, внутри которого находится запятая «... , ...», указывает на то, что предшествующая часть оператора, состоящая из нескольких эле- ментов, разделенных запятыми, может иметь произвольное число повторе- ний. Листинг А.1 содержит пример BNF-формулы оператора DELETE языка Transact-SQL (в реализации MS SQL-Server-2017). Читателю предлагается са- мостоятельно проанализировать эту BNF-формулу и сравнить ее с примерами реализации оператора DELETE языка Microsoft Jet SQL, приведенными на ли- стингах 4.6, 4.9 и 4.10 учебника. 17 / 24
234 [ WITH [ ,...n ] ] DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { { table_alias |
235 ПРИЛОЖЕНИЕ Б ПЕРЕЧЕНЬ ПРОФЕССИОНАЛЬНЫХ СТАНДАРТОВ 1. Standard Occupational Classification [Electronic resource] / U. S. Bureau of Labor Statistics. — Electronic data (1 file: 974848 bytes). URL: https://www.bls. gov/ soc/2018/soc_structure_2018.pdf, free. Title from screen. 2. ГОСТ Р 56413-2015. Информационные технологии. Европейские про- фили профессий ИКТ-сектора / CWA 16458:2012 Information technologies. European ICT professional profiles. — Введ. 01.06.2016 приказом Федерального агентства по техническому регулированию и метрологии от 29 мая 2015 г. № 465-ст. 3. Профессиональный стандарт 06.011 «Администратор баз данных». Утвержден приказом Министерства труда и социальной защиты Российской Федерации от 12 декабря 2016 г. № 727н. 4. Профессиональный стандарт 06.015 «Специалист по информационным системам». Утвержден приказом Министерства труда и социальной защиты Российской Федерации от 12 декабря 2016 г. № 727н. 5. Профессиональный стандарт 06.026 «Системный администратор ин- формационно-коммуникационных систем». Утвержден приказом Министерства труда и социальной защиты Российской Федерации от 5 октября 2015 г. № 684н. 6. Профессиональный стандарт 06.033 «Специалист по защите информа- ции в автоматизированных системах». Утвержден приказом Министерства тру- да и социальной защиты Российской Федерации от 15 сентября 2016 г. № 522н. 19 / 24
236 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Бейли, Л. Изучаем SQL. — СПб. : Питер, 2012. — 592 с. 2. Бобровский, С. Oracle Database 10g для Linux. Эффективное исполь- зование. — М. : Лори, 2004. — 487 с. 3. Вьейра, Р. Программирование баз данных Microsoft SQL Server 2008. Базовый курс. — СПб. : Диалектика-Вильямс, 2010. — 816 с. 4. Дейт, К. Основы будущих систем баз данных. Третий манифест / К. Дейт, Х. Дарвен ; под ред. С. Д. Кузнецова. — 2-е изд. — М. : Янус-К, 2004. 5. Документация PostgreSQL и Postgres Pro [Электронный ресурс]. — Режим доступа: https://postgrespro.ru/docs/ 6. Ицик, Бен-Ган. Microsoft SQL Server 2008. Основы T-SQL. — СПб. : БХВ-Петербург, 2009. — 430 с. 7. Кузнецов, C. Базы данных. Вводный курс [Электронный ресурс]. — Режим доступа: http://citforum.ru/ database/advanced_intro/ 8. Мамаев, Е. В. Microsoft SQL Server 2000. — СПб. : БХВ-Петербург, 2004. — 1280 с. 9. Риккарди, Г. Системы баз данных. Теория и практика использова- ния в Internet и среде Java. — М. : Издат. дом «Вильямс», 2001. — 480 с. 10. Справочник по Transact-SQL [Электронный ресурс]. — Режим до- ступа: http://msdn.microsoft.com/ru-ru/library/bb510741.aspx. 11. Тарасов, С. В. СУБД для программиста. Базы данных изнутри. — М. : СОЛОН-Пресс. — 320 с. 12. Туманов, В. Основы проектирования реляционных баз данных [Электронный ресурс]. — Режим доступа: https://www.intuit.ru/studies/courses/ 1095/191. 13. Цикритизис, Д. Модели данных / Д. Цикритизис, Ф. Лоховски. — М. : Финансы и статистика, 1985. — 344 с. 14. Чен, П. Модель «сущность — связь» — шаг к единому представле- нию данных [Электронный ресурс] / пер. с англ. С. Кузнецова. — Режим досту- па: http://citforum.ru/database/classics/chen/. 15. Четвериков, В. Н. Базы и банки данных : учебник для вузов / В. Н. Четвериков [и др.]. — М. : Высш. шк., 1987. — 248 с. 16. Bachman, C. W. Data Structure Diagrams. — N. Y. : ACM SIGMIS Da- tabase: the DATABASE for Advances in Information Systems. 1969. — Vol. 1, is. 2. — P. 4–10. 17. Brown, A. P. G. Modelling a Real-World System and Designing a Schema to Represent It / eds. Douque and Nijssen. — Data Base Description, 1975. 18. Burleson, D. K. The CODASYL Network Model [Электронный ресурс]. — Режим доступа: http://www.remote-dba.net/t_object_codasyl_ network.htm. 19. CA IDMS (Integrated Database Management System) [Электронный ресурс]. — Режим доступа: https://ru.bmstu.wiki/CA_IDMS. 20 / 24
237 20. Cachè. High performance multi-model database [Электронный ресурс]. — Режим доступа: http://www.intersystems.com/ru/our-products/cache/ cache-overview/. 21. Chen, P. The Entity-Relationship Model — Toward a Unified View of Data // ACM Transactions on Database Systems (TODS). — 1976. — Vol. 1. — P. 9–36. 22. Codd, E. F. Extending the Relational Database Model to Capture More Meaning // ACM TODS. — 1970. — № 4. 23. Codd, E. F. A Relational Model of Data for Large Shared Data Banks. CACM 13 (6). — June 1970. 24. Codd, E. F. The Relational Model For Database Management Ver- sion 2. — Reading, Mass. : Addison-Wesley, 1990. 25. Darwen, H. The Second Life of Relational Model / H. Darwen, C. J. Date // DB/M Magazine. — 1995. — № 1–2. 26. Darwen, H. The Third Manifesto / H. Darwen, C. J. Date //ACM SIGMOD Record 24. — 1995. — № 1. 27. Date, C. J. Notes Toward a Reconstitued Definition of the Relational Model Version 1 (RM/V1) // Date C. J. (with Darwen H.) Relational Databases: Se- lected Writings 1989–1991. — Reading, Mass. : Addison-Wesley, 1992. 28. Date, C. J. The Relational Model // Date C. J. An Introduction to Data- base Systems. 7th ed. — Reading, Mass. : Addison-Wesley, 2000. 29. Date, C. J. Temporal Data and The Relational Model / C. J. Date, H. Darwen, N. A. Lorentzos. — Reading, Mass. : Addison-Wesley, 2003. 30. A History and Evaluation of System R. — IBM Research Laboratory San Jose, California, 1981. 31. https://people.eecs.berkeley.edu/brewer/cs262/SystemR.pdf. 32. Kempe, S. A. Short History of the ER Diagram and Information Mo- deling [Электронный ресурс]. — Режим доступа: http://www.dataversity.net. 33. Long, R. IMS Primer [Электронный ресурс] / R. Long, M. Harrington, R. Hain, G. Nicholls. — IBM, 2000. — 300 с. — (IBM Redbook). — Режим досту- па: http://www.redbooks.ibm.com/redbooks/ pdfs/sg245352.pdf. 21 / 24