Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_BD_29-42.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
510.54 Кб
Скачать
  1. Управління правами доступу. Операторы управления правами доступа.

По соображениям безопасности не каждому пользователю прикладной системы может быть разрешено получать информацию из какой-либо таблицы, а тем более изменять в ней данные. Для определения прав пользователей относительно объектов базы данных (таблицы, представления, индексы) в SQL определена пара команд GRANT и REVOKE. Синтаксис операции передачи прав на таблицу:

GRANT <тип_права_на_таблицу>

ON <имя_таблицы> [<список_столбцов>]

TO <имя_пользователя>

Права пользователя на уровне таблицы определяются следующими ключевыми словами (как мы увидим чуть позже эти ключевые слова совпадают с командами выборки и изменения данных):

  • SELECT - получение информации из таблицы

  • UPDATE - изменение информации в таблице

  • INSERT - добавление записей в таблицу

  • DELETE - удаление записей из таблицы

  • INDEX - индексирование таблицы

  • ALTER - изменение схемы определения таблицы

  • ALL - все права

В поле <тип_права_на_таблицу> может быть указано либо ключевое слово ALL или любая комбинация других ключевых слов. Например, предоставим все права на таблицу publishers пользователю andy:

GRANT ALL ON publishers TO andy;

Пользователю peter предоставим права на извлечение и дбавление записей на эту же таблицу:

GRANT SELECT INSERT ON publishers TO peter;

В том случае, когда одинаковые права надо предоставить сразу всем пользователям, вместо выполнения команды GRANT для каждого из них, можно вместо имени пользователя указать ключевое слово PUBLIC:

GRANT SELECT ON publishers TO PUBLIC;

Отмена прав осуществляется командой REVOKE:

REVOKE <тип_права_на_таблицу>

ON <имя_таблицы> [<список_столбцов>]

FROM <имя_пользователя>

Все ключевые слова данной команды эквивалентны оператору GRANT.

Большинство систем поддерживают также команду GRANT для назначения привилегий на базу данных в целом. В этом случае формат команды:

GRANT <тип_права_на_базу_данных>

ON <имя_базы данных>

TO <имя_пользователя>

К сожалению, способы задания прав на базу данных различны для разных СУБД, и точную их формулировку нужно уточнять в документации. В качестве примера приведем список прав на базу данных, поддерживаемых СУБД Informix:

  • CONNECT - права на доступ к данным и их модификацию, если это разрешено на уровне таблицы;

  • RESOURCE - права на управление ресурсами. Все перечисленное выше плюс права на создание новых объектов (таблиц, индексов и т.д.) и удаление и изменение тех объектов, которыми данный пользователь владеет;

  • DBA - права на администрирование. Все права на управление ресурсами плюс права на удаление базы данных, удаление любых объектов, назначение и отмена прав других пользователей.

Отмена прав на базу данных осуществляется командой:

REVOKE <тип_права_на_базу_данных> FROM <имя_пользователя>

Изменение прав доступа к объектам базы данных

Назначение прав доступа к объектам базы данных для учетных записей, хранящихся в файле рабочей группы, выполняется в Access с помощью диалогового окна Разрешения (User and Group Permissions).

Чтобы открыть диалоговое окно для назначения прав доступа к объектам базы данных:

  1. Откройте защищенную базу данных, подключив необходимый файл рабочей группы.

  2. Зарегистрируйтесь с именем пользователя, обладающего административными правами.

  3. Выберите команду Сервис, Защита, Разрешения (Tools, Security, User and Group Permissions). Появится диалоговое окно Разрешения (User and Group Permissions) (рис. 20.6).

В диалоговом окне Разрешения есть две вкладки: Разрешения (Permissions) и Смена владельца (Change Owner). Рассмотрим вкладку Разрешения. (О функциях второй вкладки рассказывается в разд. "Предоставление права на владение объектами базы данных" этой главы.) С помощью данной вкладки можно определить права доступа к конкретным объектам базы данных для конкретных пользователей и групп. В поле Пользователь (Current User) отображается имя пользователя, которое было применено для регистрации в момент открытия базы данных. В зависимости от того, обладает ли текущий пользователь административными правами или нет, ему будут позволены или запрещены просмотр и изменение прав доступа к объектам базы данных.

Рис. 20.6. Диалоговое окно Разрешения

Чтобы назначить права доступа к объектам базы данных конкретной группе:

  1. На вкладке Разрешения выберите переключатель группы (Groups).

  2. В списке Пользователи и группы (User/Group Name) отобразится список всех групп в рабочей группе. Выделите в этом списке группу, права доступа которой нужно изменить.

  3. Измените права доступа к объектам базы данных и нажмите кнопку ОК.

Чтобы назначить права доступа к объектам базы данных конкретному пользователю:

  1. На вкладке Разрешения выберите переключатель пользователи (Users).

  2. В списке Пользователи и группы (User/Group Name) отобразится список всех пользователей в рабочей группе. Выделите в этом списке пользователя, права доступа которого нужно изменить.

  3. Измените права доступа к объектам базы данных и нажмите кнопку ОК.

Чтобы назначить выбранному пользователю или группе права доступа к объекту базы данных:

  1. На вкладке Разрешения в раскрывающемся списке Тип объекта (Object Type) выберите тип объекта (Таблица (Table), Запрос (Query), Форма (Form), Отчет (Report) или Макрос (Macro)).

Замечание

В списке имен объектов не будут отображаться скрытые объекты, если в диалоговом окне Параметры (Options) на вкладке Вид (View) не установлен флажок скрытые объекты (Hidden Objects), позволяющий отображать скрытые объекты.

  1. В списке Имя объекта (Object Name) выделите имя объекта, права доступа к которому требуется изменить.

  2. Чтобы предоставить определенный вид доступа, установите соответствующий флажок в группе Разрешения (Permissions). Чтобы запретить определенный вид доступа, сбросьте соответствующий флажок в этой группе.

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

Чтобы назначить пользователю или группе права доступа к базе данных:

  1. На вкладке Разрешения в раскрывающемся списке Тип объекта (Object Type) выберите элемент База данных (Database).

  2. В списке Имя объекта. (Object Name) отобразится элемент <Текущая база дан-ных> (<Current Database>).

  3. Установите необходимые разрешения и нажмите кнопку Применить (Apply).

Чтобы назначить права доступа к создаваемым объектам базы данных, предоставляемые пользователю или группе:

  1. На вкладке Разрешения в раскрывающемся списке Тип объекта (Object Type) выберите тип объекта (например, Форма (Form)).

  2. В списке Имя объекта (Object Name) выделите элемент, обозначающий новые объекты заданного типа, права доступа к которым требуется изменить (например, <Новые формы> (<New Forms>)).

  3. Установите необходимые разрешения и нажмите кнопку Применить (Apply).

  1. Створення додатків в С++Builder по роботі з БД.

Используя Borland C++ Builder, можно создать приложения, работающие как с однопользовательскими базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками. Возможности C++ Builder, связанные с созданием приложений, использующих базы данных, весьма обширны для того, чтобы описать их в одной статье. Поэтому сегодня мы рассмотрим лишь простейшие возможности работы с таблицами баз данных.

Набор данных в C++ Builder - это объект, состоящий из набора записей, каждая из которых, в свою очередь, состоит из полей, и указателя текущей записи. Набор данных может иметь полное соответствие с реально существующей таблицей или быть результатом запроса, он может быть частью таблицы или объединять между собой несколько таблиц.

Набор данных в C++ Builder является потомком абстрактного класса TDataSet (абстрактный класс - это класс, от которого можно порождать другие классы, но нельзя создать экземпляр объекта данного класса). Например, классы TQuery, TTable и TStoredProc, содержащиеся на странице палитры компонентов Data Access, - наследники TDBDataSet, который, в свою очередь, является наследником TDataSet. TDataSet содержит абстракции, необходимые для непосредственного управления таблицами или запросами, обеспечивая средства для того, чтобы открыть таблицу или выполнить запрос и перемещаться по строкам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]