{
    "id": "pdo176-role-route",
    "title": "Каталог с ролью читателя и подтверждённым запретом изменения",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Вход без роли",
            "успешен"
        ],
        [
            "SELECT без роли",
            "отказ"
        ],
        [
            "Каталог с ролью",
            "Кабель: 8"
        ],
        [
            "UPDATE с ролью читателя",
            "отказ"
        ],
        [
            "Остаток в базе",
            8
        ],
        [
            "Файл",
            "permissions.csv"
        ]
    ],
    "checks": {
        "same_login_without": true,
        "ordinary_role_inactive": true,
        "select_rejected": true,
        "select_diagnosed": true,
        "same_login_with": true,
        "dsn_role_active": true,
        "selected_one": true,
        "selected_title": true,
        "selected_quantity": true,
        "update_rejected": true,
        "update_diagnosed": true,
        "quantity_preserved": true,
        "user_connections_released": true,
        "secret_length": true,
        "artifact_written": true,
        "owned_objects_removed": true
    },
    "observations": {
        "identity_without_role": {
            "same_user": true,
            "role": "NONE"
        },
        "identity_with_role": {
            "same_user": true,
            "expected_role_active": true
        },
        "read_denied": {
            "exception": true,
            "sqlstate": "28000",
            "driver_code": -551,
            "warning": false,
            "message_present": true
        },
        "allowed_catalog": [
            {
                "title": "Кабель",
                "qty": 8
            }
        ],
        "update_denied": {
            "exception": true,
            "sqlstate": "28000",
            "driver_code": -551,
            "warning": false,
            "message_present": true
        },
        "quantity_after": 8,
        "grant_kind": "ordinary role; not DEFAULT"
    },
    "runtime": {
        "php": "8.5.11",
        "extension": "8.5.11",
        "pdo": "8.5.11",
        "driver": "firebird",
        "server_version": "5.0.4",
        "client_version": "WI-V6.3.4.1812 Firebird 5.0",
        "api_version": 40,
        "database": "phpmanual176",
        "transport": "isolated_loopback_tcp"
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "P176_ROLE_ITEMS_704D394066"
        },
        {
            "type": "ROLE",
            "name": "P176_READER_ROLE_4446DD4526"
        },
        {
            "type": "USER",
            "name": "P176_READER_USER_A3E828CB0E"
        }
    ],
    "removed_objects": [
        {
            "type": "USER",
            "name": "P176_READER_USER_A3E828CB0E"
        },
        {
            "type": "ROLE",
            "name": "P176_READER_ROLE_4446DD4526"
        },
        {
            "type": "TABLE",
            "name": "P176_ROLE_ITEMS_704D394066"
        }
    ]
}
