Представим работу разных прав доступа применительно к базовым объектам безопасности системы:
ДЕЙСТВИЯ \ ПРАВА |
Нет доступа |
Чтение / Проведение |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Просмотр объекта |
Запрещен |
Разрешен |
Разрешен |
Разрешен |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Редактирование объекта |
Запрещен |
Запрещен |
Запрещен |
Если для пользователя указано право на папку Нет доступа , а на элемент в этой папке доступ разрешён (права Чтение и проведение или Чтение и запись ), то доступ к элементу всё равно будет запрещён. При попытке открыть объект системы, доступный только Администратору , обычному пользователю будет выдано сообщение о нарушении прав доступа. ЗАМЕЧАНИЕ О РАБОТЕ БЕЗОПАСНОСТИ ПРИ РАСЧЕТЕ ФОРМУЛ В ДОКУМЕНТАХ.
См. также: Когда пользователи подключаются к SQL-сервер, действия, которые они могут выполнять, определяются правами, выданными их учетной записи, группе или роли, в которой они состоят. Для выполнения тех или иных действий пользователь должен иметь соответствующие права. Выполнение некоторых действий не требует явного разрешения и доступно по умолчанию. Для предоставления пользователям определенного набора прав можно использовать роли. Создав несколько ролей и предоставив им необходимые права доступа, администратор может просто включать пользователей в соответствующие роли. В этом случае пользователь автоматически получает все права, определенные для роли. Права в SQL-сервер можно разделить на 3 категории: Разрешение для объектов. Работа с данными и выполнение хранимых процедур требует наличие класса доступа, называемого «разрешением для объектов». Разрешение для объектов контролирует возможность выполнения команд Select, Insert, Update и Delete для таблицы представлений. Действия с хранимыми процедурами контролируются разрешением либо запрещением их выполнения, т.е. предоставлением или запрещением команды EXECUTE. Разрешение для команд Transact SQL. Этот класс разрешений контролирует возможность создания объекта в БД, а также создание самой БД и выполнение процедур резервного копирования (Create view, create table и т.д.). Неявное разрешение. Этот класс разрешений контролирует действия, которые могут быть выполнены только членами ролей сервера или владельцами объектов в БД. Неявные разрешения не предоставляются пользователям напрямую, он получает их только при определенных обстоятельствах. Например, пользователь может стать владельцем объекта БД, только если он сам создаст этот объект, либо если другой владелец объекта передаст ему права владения своим объектом. Владелец объекта имеет все права для выполнения любых действий с объектом, при чем эти права нигде явно не указываются. Для конкретного действия, контролируемого разрешением, возможны три варианта состояния доступа: предоставления, запрещения, неявного отклонения. После создания пользователь не имеет никаких прав доступа кроме тех, которые разрешены для специальной роли БД Public. В SQL-сервер существует возможность контролировать права доступа не только на уровне таблиц, но и на уровне колонок. Для предоставления прав доступа используется команда GRANT. {ALL/permissions [..n]} {[(column [..n])] ON | ON {stored_procedure} TO security_account Для разрешения выполнения команд SQL используется следующая инструкция: GRANT {ALL/Statement [..n]} TO security_account [...n] Запрещение доступа При запрещении доступа к данным или командам Transact SQL аннулируются все разрешения на доступ пользователя на любом уровне иерархии. При этом гарантируется, что доступ останется запрещенным независимо от разрешений, предоставленных на более высоком уровне. Но иногда необходимо временно ограничивать доступ определенным пользователям к таблице. Вместо того чтобы убирать разрешение на доступ, в этом случае можно создать роль, в которой будет запрещен доступ к этой таблице, и включить пользователей в эту роль. Для запрещения пользователям доступа к объектам БД используется команда DENY. {ALL/permissions [..n]} {[(column [..n])] ON | ON {table/view} [(column[..n])] | ON {stored_procedure} TO security_account [..n] Для запрещения выполнения команд Transact SQL: DENY {ALL/Statement [..n]} TO security_account [...n] Неявное отклонение доступа Неявное отклонение доступа подобно запрещению доступа с тем отличием, что оно действует только на том уровне, на котором определено. Если пользователю на определенном уровне неявно отклонен доступ, он может получить его на другом уровне иерархии через членство в роли, имеющей право просмотра. Для неявного отклонения доступа к объектам БД используется команда REVOKE. {ALL/permissions [..n]} {[(column [..n])] ON | ON {table/view} [(column[..n])] | ON {stored_procedure} TO security_account [..n] Для неявного отклонения разрешений на использование команд Transact SQL: REVOKE {ALL/Statement [..n]} TO security_account [...n] Значения параметров команд: ALL – означает, что пользователю будут предоставлены все возможные разрешения. Permissions – список доступных операций, которые предоставляются пользователю. Можно предоставлять одновременно несколько разрешений. Statement – предоставление разрешений на выполнение команд Transact SQL. Security_account – указывается имя объекта системы безопасности, которую необходимо включить в роль. Это могут быть как учетные записи SQL-сервер, так и группы пользователей Windows. With Grant Option – использование данного параметра позволяет пользователю, которому предоставляются права, назначать права на доступ к объекту для других пользователей. As role/group – этот параметр позволяет указать участие пользователя в роли, которому предоставляется возможность предоставлять права другим пользователям. Cascade – позволяет отзывать права не только у данного пользователя, но и у всех пользователей, которым он предоставил данные права. SLIC . Упомянутые компоненты управляют использованием объектов, ресурсов, некоторых команд и атрибутов машины.Профиль пользователя определяет следующие параметры:
Назначение большинства приведенных атрибутов очевидно, но первые четыре требуют некоторых пояснений. Класс пользователяКакой именно уровень доступа к системе разрешен пользователю, определяют пять классов пользователей. От класса зависит, какие функции пользователь может выполнять, какие пункты меню и привилегированные команды ему доступны. Перечислим все пять классов, начиная с максимального уровня доступа:
В новой AS/400 для каждого класса пользователей имеется по одному профилю. Заказчик сам решает, кто в его организации будет отвечать за каждой из участков работы. Очевидно, что один и тот же человек может совмещать несколько обязанностей. Объекты, принадлежащие и доступныеПрофиль пользователя содержит два списка. Первый - список всех объектов, которыми владеет данный пользователь, а второй - список объектов, к которым он имеет доступ. Владелец объекта - это пользователь, создавший его. Если профиль пользователя - член профиля группы (подробно будет обсуждаться далее), то в профиле может быть задано, что все созданные пользователем объекты принадлежат группе. Право владения объектом может передаваться. Владелец объекта или любой пользователь, имеющий права на управление этим объектом, может назначать явные (private) права доступа к объекту, а также установить общие (public) права на объект. В профиле пользователя перечислены только принадлежащие ему объекты и объекты со специальными правами. Права доступа к объектамК каждому объекту AS/400 может быть предоставлено восемь видов доступа, а именно:
Эти восемь прав объединены OS/400 в четыре комбинации, чтобы их было легче применять. Конечные пользователи могут использовать и другие сочетания, но большинство все же предпочитает следующие стандартные комбинации:
Привилегированные команды и специальные праваКаждый профиль пользователя содержит информацию о привилегированных командах и специальных правах пользователя. Некоторые привилегированные команды MI могут выполняться только теми пользователями, профили которых разрешают это делать. Например, профиль для начальника защиты создается с возможностью исполнять команду "PWRDWNSYS" (Power Down System), останавливающую работу машины. По очевидным причинам эта привилегированная команда не доступна обычным пользователям. Также есть набор специальных прав, которые могут быть предоставлены лишь избранным пользователям. Эти специальные права связаны с такими операциями, как подвешивание объектов, управление процессами, выполнение операций загрузки/ дампа и использование низкоуровневых сервисных средств. Хотя все привилегированные команды и специальные атрибуты могут быть заданы в профиле пользователя по отдельности, OS/400 объединяет команды и права в шесть групп специальных прав:
Профиль пользователя - это сердце системы защиты AS/400. Он управляет доступом практически ко всем ресурсам системы. Но даже если профиль пользователя не дает последнему прав на некоторый объект или ресурс системы, такие права можно получить иными способами. Далее мы рассмотрим два способа получения дополнительных прав: заимствование прав программой и права группы. Заимствование прав программойВо время исполнения программы профиль пользователя - владельца программы может служить дополнительным источником прав. Возможность заимствования прав позволяет программе выполнять операции , требующие полномочий, которыми пользователь непосредственно не обладает. Вместо того, чтобы предоставлять дополнительные права пользователю, пользовательская прикладная программа вызывает другую программу, владелец которой имеет соответствующие права . Таким образом, заимствование прав программой требует использования концепции стека вызовов . Такое заимствование всегда аддитивно и никогда не уменьшает прав доступа. Заимствование - атрибут программы, задаваемый при ее создании. Если вызываемая программа допускает заимствование прав, то любая вызывающая программа может использовать права владельца во время выполнения вызываемой программы. Программы, работающие в системном состоянии, могут сами задать запрет на заимствование. Программа может также запретить дальнейшее распространение прав. Это означает, что вызывающая программа будет заимствовать права , но эти права не сохранятся для программ, расположенных дальше по цепи вызовов. Ранее мы рассматривали только случаи, когда один пользователь имеет права на один объект . Однако, иногда нужно предоставить одинаковые права группе пользователей, или права на группу объектов. Группирование правНа AS/400 есть три метода группирования прав. Списки прав и профили групп упрощают администрирование защиты, устраняют необходимость индивидуального подхода к пользователям или объектам. Держатели прав ( authority holders ) были введены IBM еще в среде System/36. После проделанной подготовительной работы можно приступить к изучению работы с правами файлов в NTFS . Для этого следует: Выбрать любой файл или папку; Щелчком правой кнопкой мыши вызвать контекстное меню; В контекстном меню выбрать режим Свойства ; Открыть вкладку Безопасность ; Откроется окно безопасности файла или папки (рис.1.8.). В открывшейся вкладке видно, каким группам пользователей и какой именно доступ разрешен. В операционной системе и, в частности, ее файловой системе, действует правило: к файловому объекту имеют доступ только перечисленные пользователи, в соответствии с указанными им правами. В новейших операционных системах действует более глобальное правило: все, что явно не разрешено – запрещено. В соответствии с этим, любой пользователь, не принадлежащий к группе пользователей, указанных во вкладке Безопасность получит отказ при доступе к папке C:\Windows . В старых ОС линейки Windows 9x считалось, что запрещено только то, что явным образом запрещено – любой объект, который не имеет явного запрета в использовании, является доступным. Рисунок 1.8. Окно свойств безопасности папки В старых ОС это означает, что каждый раз при создании какого-либо объекта пользователь должен сам вручную прописывать доступ, который к нему запрещен. Если пользователю нужно часто создавать новые объекты, то невозможно сразу на всех поставить корректные права доступа (или можно забыть запретить доступ другим пользователям). В этом случае как минимум, несколько минут или даже часов на таких файлах будет оставаться доступ для всех пользователей, т.е. с такого компьютера любой человек или программа может скопировать любую информацию или даже стереть ОС, если такая возможность не была заранее закрыта пользователем или системным администратором. Данную ситуацию используют вирусы, которые могут получить полный контроль над ОС, файлами, личной информацией. Благодаря введению новой политики безопасности Microsoft удалось не только сократить число краж информации пользователей, но и значительно сократить число вирусов и троянских программ. Однако, даже в этом случае, любые попытки фирмы разработчика уберечь от утраты информации могут окончиться ничем, если пользователь будет работать под правами Администратора ОС. Пользователь, принадлежащий к группе системных администраторов имеет все права и ситуация становится аналогичной ситуации в линейке ОС Windows 9x . Поэтому рекомендуется работать в системе под правами обычного пользователя группы Users . В окне свойств системы безопасности (рис.1.8.) находятся следующие группы пользователей: SYSTEM , Администраторы , Опытные пользователи, Пользователи , СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ . В эти группы входят также специфические возможности файловой системы или группы, от имени которых работает ОС или определенные программы и сервисы. К числу последних групп принадлежит группа SYSTEM, от имени которой выступает ОС Windows ХР . Случается когда доступ для ОС к какому-либо объекту или к папке закрывается, например, из-за того, что группа SYSTEM была удалена из свойств папок по причине активности вирусов. Если папка содержит файлы пользователя, то он может получить невозможность доступа к ней, а если папка является системной, то Windows может перестать функционировать корректно. Это связано с тем, что при запуске программы или файла управление передается ОС, после чего она выполняет инструкцию пользователя. Если ОС доступ закрыт, то она откажется выполнить запрос пользователя, особенно, если был дан запрет на папку, в которой находится сама ОС, в этом случае система не загрузится. Для того чтобы восстановить группу SYSTEM в ее свойствах и реанимировать ОС, можно загрузиться с другой ОС Windows XP . При этом следует учесть, что если обновления, поставленные на другую ОС, будут отличаться от тех, которые стояли на данной системе, то возможны различные проблемы. Однако если на не желающей загружаться ОС стоят более ранние обновления, чем на ОС, которая используется для восстановления, то проблем быть не должно. Это связано с тем, что выполняется условие обратной совместимости, поддерживаемое компанией Microsoft во всех ее продуктах линейки Windows NT . Пользователь получит доступ ко всем файлам, включая сжатые, исключением являются только зашифрованные данные. Если необходимо получить доступ к ним, то нужно иметь специальную криптографическую информацию, которую необходимо передать новой ОС. После того как была произведена загрузка с другой ОС Windows XP , необходимо дать команду на добавление доступа к этой папке группы SYSTEM . После перезагрузки в оригинальной ОС, можно провести окончательную проверку или настройку. Случай гораздо проще, если был запрещен доступ группы SYSTEM к пользовательской папке. Для устранения этой проблемы достаточно обеспечить наследование прав от папки уровнем выше, а потом дать системе команду, из того же окна наследования прав, на замещение предыдущих свойств наследуемыми свойствами. Вторая специфическая группа: СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ представляет собой специальную запись, в которую помещается идентификатор пользователя, который является владельцем этого объекта файловой системы, в случае наследования прав. По аналогии с этим, ГРУППА-СОЗДАТЕЛЬ представляет собой запись группы, в которую помещается первичная группа пользователя, который является владельцем этого объекта файловой системы в случае наследования прав. Остальными группами, имеющими доступ, являются: Администратор , Опытный пользователь , Пользователь , что означает наличие доступа у администраторов системы, опытных пользователей и простых пользователей, соответственно. В ОС все или почти все пользователи должны входить в состав группы Пользователи (Users ), в крайнем случае, можно присвоить права группы Опытный пользователь (Power Users ), но никогда не следует давать права группы Администратор (Administrators ). Для группы Пользователи имеется ряд прав, помеченных флажком для работы с папкой Windows (рис.1.9.). Поля: Разрешить и Запретить означают разрешен ли доступ или запрещен, соответственно, в зависимости от того, в каком столбце стоит флажок для данного права доступа объекта. В зависимости от установленных прав определяется, может пользователь совершать операцию или нет. Пользователь может сам менять права расстановкой/отменой флажка. Если флажки неактивны (темный цвет флажкового поля) и пользователь не может вносить изменения, то, следовательно, у него недостаточно прав на операцию. Рисунок 1.9. Права группы Пользователи Разрешения для пользователя (рис.1.9.): - полный доступ – пользователь, принадлежащий к указанной группе, может выполнять любые операции над папкой; - изменить – означает возможность модификации файлов или папки, в зависимости от того, чем является защищаемый объект; - чтение и выполнение – возможность чтения и исполнения файлов папки; - список содержимого папки – доступ к списку содержимого папки; - чтение – доступ на чтение содержимого папки; - запись – разрешение на запись означает возможность, изменять или создавать новые файлы, а если такое право доступа стоит для одного файла, то и возможность записи в него группе пользователей или одному пользователю, для которого рядом с этим правом доступа стоит флажок; - особые разрешения – используются для уточнения набора прав, которым может обладать пользователь, для их редактирования следует нажать кнопку Дополнительно , выбрать из списка требуемого пользователя, а потом нажать кнопку Изменить . Администраторы имеют полные права на доступ к системной папке Windows . Аналогичные права имеет и пользователь SYSTEM , так как от его имени работает сама ОС Windows XP (рис.1.10.). Рисунок 1.10. Права группы System Права пользователей группы Опытные пользователи отличаются от прав групп System и Администратор только отсутствием пункта Полный доступ . Назначение прав доступа к объектам базы данных для учетных записей, хранящихся в файле рабочей группы, выполняется в Access с помощью диалогового окна Разрешения (User and Group Permissions). Чтобы открыть диалоговое окно для назначения прав доступа к объектам базы данных:
В диалоговом окне Разрешения есть две вкладки: Разрешения (Permissions) и Смена владельца (Change Owner). Рассмотрим вкладку Разрешения. (О функциях второй вкладки рассказывается в разд. "Предоставление права на владение объектами базы данных" этой главы.) С помощью данной вкладки можно определить права доступа к конкретным объектам базы данных для конкретных пользователей и групп. В поле Пользователь (Current User) отображается имя пользователя, которое было применено для регистрации в момент открытия базы данных. В зависимости от того, обладает ли текущий пользователь административными правами или нет, ему будут позволены или запрещены просмотр и изменение прав доступа к объектам базы данных. Рис. 20.6. Диалоговое окно Разрешения Чтобы назначить права доступа к объектам базы данных конкретной группе:
Чтобы назначить права доступа к объектам базы данных конкретному пользователю:
Чтобы назначить выбранному пользователю или группе права доступа к объекту базы данных:
Замечание В списке имен объектов не будут отображаться скрытые объекты, если в диалоговом окне Параметры (Options) на вкладке Вид (View) не установлен флажок скрытые объекты (Hidden Objects), позволяющий отображать скрытые объекты.
Чтобы назначить пользователю или группе права доступа к базе данных:
Чтобы назначить права доступа к создаваемым объектам базы данных, предоставляемые пользователю или группе:
Замечание Установка или сброс флажков некоторых разрешений влечет установку или сброс других флажков разрешений, поскольку предоставление или отмена определенного вида доступа может привести к предоставлению или отмене другого вида доступа, связанного с измененным. Например, предоставление доступа к таблице вида Чтение данных (Read Data) влечет предоставление доступа Чтение макета (Read Design), а отмена доступа Обновление данных (Update Data) влечет отмену доступа Изменение макета (Modify Design). |