Тестирование пользователя категории 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 (добавление столбца). Результат: успешное завершение |