Тестирование пользователя категории DBA

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

На втором этапе производятся попытки доступа пользователем категории Dba к чужим объектам СУБД, потенциально разрешенные для пользователей данной категории, но с учетом различных прав на данный объект, предоставленных владельцем данного объекта. Производятся попытки уничтожения таблиц других пользователей, создания и уничтожения индексов, изменения структуры, а также чтения и изменения содержимого таблиц с различным доступом к ним.

Реализация:

Таблица Пользователь Действие
res2.r2t1 DBA1 Попытка предоставить право select на таблицу пользователю res1. Результат: код завершения 1022
res2.r2t1 DBA1 Попытка предоставить право select на таблицу пользователю conn1. Результат: код завершения 1022
res2.r2t1 DBA1 Попытка предоставить право select на таблицу пользователю res2. Результат: код завершения 2152
res2.r2t1 DBA1 Попытка отмены права delete у пользователя res2. Результат: код завершения 2152
res2.r2t1 DBA1 Попытка отмены права delete у пользователя res1. Результат: код завершения 1022
  DBA1 Попытка удаления пользователя SYSTEM, имеющего таблицы. Результат: код завершения 1513
  DBA1 Попытка уничтожения представления res2.allt2. Результат: код завершения 2133
res1.r1t2 DBA1 (без уровня прав select) Попытка выполнить select-запрос. Результат: код завершения 1022
  DBA1 (без уровня прав select) Попытка выполнить select-запрос через синоним res1tab1. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегия select на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t2 DBA1 (привилегия select на таблицу) Попытка выполнить insert-запрос. Результат: код завершения 1022
res2.r2t2 DBA1 (без уровня прав select) Попытка выполнить update-запрос. Результат: код завершения 1022
res2.r2t2 DBA1 (привилегия select на таблицу) Попытка выполнить delete-запрос. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегия select на таблицу) Попытка изменения структуры таблицы (добавление столбца). Результат: код завершения 1022
res2.r2t1 DBA1 (привилегия select на таблицу) Попытка создания индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегия select на таблицу) Попытка удаления индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t2 DBA1 (привилегии select, insert на таблицу) Попытка выполнить update-запрос. Результат: код завершения 1022
res2.r2t2 DBA1 (привилегии select, insert на таблицу) Попытка выполнить delete-запрос. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert на таблицу) Попытка изменения структуры таблицы (добавление столбца). Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert на таблицу) Попытка создания индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert на таблицу) Попытка удаления индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t2 DBA1 (привилегии select, insert, update на таблицу) Попытка выполнить delete-запрос. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update на таблицу) Попытка изменения структуры таблицы (добавление столбца). Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update на таблицу) Попытка создания индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update на таблицу) Попытка удаления индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t1 DBA1 (привилегии select, insert, update, delete на таблицу) Попытка изменения структуры таблицы (добавление столбца). Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete на таблицу) Попытка создания индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete на таблицу) Попытка удаления индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete, alter на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t1 DBA1 (привилегии select, insert, update, delete, alter на таблицу) Попытка создания индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete, alter на таблицу) Попытка удаления индекса. Результат: код завершения 1022
res2.r2t1 DBA1 (привилегии select, insert, update, delete, alter, index на таблицу) Попытка удаления таблицы. Результат: код завершения 2133
res2.r2t1 DBA1 (привилегии select, insert, update, delete, alter, index, all на таблицу) Попытка удаления таблицы. Результат: код завершения 2133

Ко второй группе тестов относится тестирование функционирования мандатных ПРД.

На первом этапе производятся различные действия, связанные с понятием группы: попытки создания пользователей, доступ к данным в своей и чужой группах, установки флагов доверия.

Реализация:

Таблица Пользователь Действие
  RES1 Попытка создания пользователя в группе GROUP1. Результат: код завершения 1022
  RES1 Попытка создания пользователя в группе GROUP2. Результат: код завершения 1022
  DBA1 Попытка изменения группы пользователя RES1 на GROUP2. Результат: код завершения 1022
  DBA1 Попытка создания пользователя в группе GROUP2. Результат: код завершения 1022
  DBA1 Попытка создания пользователя в группе GROUP1. Результат: успешное завершение
  DBA1 Попытка создания нового уровня доступа. Результат: код завершения 1022
res2.r2t8 DBA1 Попытка произвести операцию select. Результат: код завершения 1070
res2.r2t8 DBA1 Попытка произвести операцию insert. Результат: код завершения 1070
res2.r2t8 DBA1 Попытка произвести операцию delete. Результат: код завершения 1070
res2.r2t8 DBA1 Попытка произвести операцию update. Результат: код завершения 1070
res2.r2t8 DBA1 Попытка произвести создание индекса. Результат: успешное завершение
res2.r2t8 DBA1 Попытка произвести операцию alter (добавление столбца). Результат: код завершения 1070
  DBA1 Попытка установить флаг доверия к группе GROUP2 для группы GROUP1. Результат: код завершения 1022
  RES2 Попытка установить флаг доверия к группе GROUP2 для группы GROUP1. Результат: код завершения 1022
  DBA2 Попытка установить флаг доверия к группе GROUP2 для группы GROUP1. Результат: успешное завершение
  DBA1 Попытка установить флаг доверия к группе GROUP1 для группы GROUP2. Результат: успешное завершение

На втором этапе производятся различные действия, связанные с понятием уровней доступа: создание информации с неверными уровнями доступа, чтение запрещенной информации и т.д.

Ошибочные коды завершения могут возникать в результате попытки работать с таблицами (столбцами), уровни доступа которых жестче уровней доступа пользователя или при указании неверных уровней доступа в процессе создания новых записей. Если доступ к таблице (столбцу) разрешен, то результатом select, update или delete-запроса будет количество обработанных строк. Запрет доступа на уровне записи (поля записи) приводит к тому, что эта запись не будет обрабатываться. В результате выборка данных может пустой даже в случае наличия удовлетворяющих запросу записей.

При запросе alter table ошибка возникает в случае, если метка чтения пользователя меньше метки чтения или записи таблицы или указании неверных уровней доступа к создаваемому столбцу.

Группа тестов, связанная с созданием таблиц с различными уровнями доступа, изменения уровней доступа пользователей.

Реализация:

Таблица Пользователь Действие
  DBA1 Попытка создания таблицы d1t1 без явного указания уровней доступа. Результат: успешное завершение
  DBA1 Попытка создания таблицы d1t2 с R=6, W=6. Результат: успешное завершение
  DBA1 Попытка создания таблицы d1t3 с R=4 W=4. Результат: код завершения 1022
  DBA1 Попытка создания таблицы d1t4 с уровнем доступа к отдельному столбцу R=4 W=4. Результат: код завершения 1022
  DBA1 Попытка изменения уровней доступа пользователя RES1 (R=6, W=5). Результат: код завершения 1022
  DBA1 Попытка изменения уровней доступа пользователя RES1 (R=5, W=4). Результат: код завершения 1022
  DBA1 Попытка изменения уровней доступа пользователя RES1 (R=4, W=6). Результат: успешное завершение
  SYSTEM Попытка изменения уровней доступа пользователя RES1 (R=6, W=5). Результат: успешное завершение
  SYSTEM Попытка изменения уровней доступа пользователя RES1 (R=5, W=4). Результат: успешное завершение
  SYSTEM Попытка изменения уровней доступа пользователя RES1 (R=4, W=6). Результат: успешное завершение. Затем уровни этого пользователя меняются на R=5, W=5
res2.r2t1 DBA1 Попытка произвести select * … при PersID=2. Результат: возвращаются 2 строки
res2.r2t2 DBA1 Попытка произвести select *…. Результат: возвращаются 3 строки
res2.r2t3 DBA1 Попытка произвести select * …. Результат: код завершения 1070
res2.r2t4 DBA1 Попытка произвести select * …. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести select * …. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести select model5 …. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести select PersId …. Результат: возвращаются 3 строки
res2.r2t6 DBA1 Попытка произвести select * …. Результат: возвращаются 3 строки
res2.r2t7 DBA1 Попытка произвести select * …. Результат: код завершения 1070
res2.r2t7 DBA1 Попытка произвести select model7 …. Результат: код завершения 1070
res2.r2t1 DBA1 Попытка произвести select * … при PersID=1. Результат: возвращаются 4 строки
res2.r2t1 DBA1 Попытка произвести select model1 … при PersID=1. Результат: возвращаются 4 строки
res2.r2t1 DBA1 Попытка произвести insert. Результат: успешное завершение
res2.r2t2 DBA1 Попытка произвести insert. Результат: код завершения 1070
res2.r2t3 DBA1 Попытка произвести insert. Результат: успешное завершение
res2.r2t4 DBA1 Попытка произвести insert. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести insert. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести insert в поле PersId. Результат: успешное завершение
res2.r2t6 DBA1 Попытка произвести insert. Результат: код завершения 1070
res2.r2t7 DBA1 Попытка произвести insert. Результат: успешное завершение
res2.r2t1 DBA1 Попытка произвести insert с R=3 для записи. Результат: код завершения 1070
res2.r2t1 DBA1 Попытка произвести insert с R=3 для поля Model1. Результат: код завершения 1070
res2.r2t1 DBA1 Попытка произвести insert с R=6, W=6 для записи. Результат: успешное завершение
res2.r2t1 DBA1 Попытка произвести insert с R=6, W=6 для поля Model1. Результат: успешное завершение
res2.r2t1 DBA1 Попытка произвести update при PersID=2. Результат: изменяется одна строка
res2.r2t1 DBA1 Попытка произвести update при PersID=1. Результат: изменяется одна строка
res2.r2t2 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t3 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t4 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести update столбца PersId. Результат: изменяются 4 строки
res2.r2t6 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t7 DBA1 Попытка произвести update. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести update столбца Make. Результат: изменяются 4 строки
res2.r2t6 DBA1 Попытка произвести update столбца Make. Результат: изменяются 3 строки
res2.r2t7 DBA1 Попытка произвести update столбца Make. Результат: изменяются 3 строки
res2.r2t1 DBA1 Попытка произвести update поля Model1 (R=6) всех строк с PersID=10. Результат: изменяется одна строка
res2.r2t1 DBA1 Попытка произвести update поля Model1 (R=3) всех строк с PersID=10. Результат: код завершения 1070
res2.r2t1 DBA1 Попытка произвести delete с PersID=1. Результат: удалена одна строка
res2.r2t1 DBA1 Попытка произвести delete с PersID=2. Результат: удалена одна строка
res2.r2t2 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t3 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t4 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t5 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t6 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t7 DBA1 Попытка произвести delete всех записей. Результат: код завершения 1070
res2.r2t4 DBA1 Попытка произвести alter (добавление столбца). Результат: код завершения 1070
res2.r2t1 DBA1 Попытка произвести alter (добавление столбца). Результат: успешное завершение