Включить выданную роль в конкретном подключении

Фактические данные получены через расширение interbase по TCP к отдельному серверу Firebird с проверкой пароля. Собственные учебные пользователи, базы и промежуточные резервные файлы удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
CURRENT_ROLE без указания ролиNONE
SELECT без роли разрешённет
Код отказа без роли-551
CURRENT_ROLE при явном выбореLAB_READER
Каталог с рольюCable — 3; Clamp — 0
DELETE для читающей роли разрешённет
После отказа число товаров2
Строки и дополнительные наблюдения
{
    "role_without_option": "NONE",
    "select_without_role": {
        "value": false,
        "warning": true,
        "code": -551,
        "message_present": true
    },
    "role_with_option": "LAB_READER",
    "catalogue": [
        {
            "ID": 1,
            "TITLE": "Cable",
            "QTY": 3
        },
        {
            "ID": 2,
            "TITLE": "Clamp",
            "QTY": 0
        }
    ],
    "delete_refusal": {
        "value": false,
        "warning": true,
        "code": -551,
        "message_present": true
    },
    "after": [
        {
            "ID": 1,
            "TITLE": "Cable",
            "QTY": 3
        },
        {
            "ID": 2,
            "TITLE": "Clamp",
            "QTY": 0
        }
    ],
    "role_is_default": false
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.