From 29807a2d687896c67ada934c6a626401f5930e50 Mon Sep 17 00:00:00 2001 From: Christoph Auer <60343111+cau-git@users.noreply.github.com> Date: Wed, 27 Nov 2024 13:07:00 +0100 Subject: [PATCH] fix: Update tests and examples for docling-core 2.5.1 (#449) * Update tests for docling-core 2.5.0 Signed-off-by: Christoph Auer * Add export with referenced images to export_figures example Signed-off-by: Christoph Auer * Fix OCR tests Signed-off-by: Christoph Auer * Revert "Fix OCR tests" This reverts commit 12b575946f51950fcacece99d4d6eb682125d779. Signed-off-by: Christoph Auer * Update lockfile for docling-core 2.5.1 Signed-off-by: Christoph Auer --------- Signed-off-by: Christoph Auer --- docs/examples/export_figures.py | 12 +- poetry.lock | 1403 ++++++++--------- pyproject.toml | 2 +- .../docling_v1/redp5110_sampled.pages.json | 2 +- .../docling_v2/2203.01017v2.doctags.txt | 90 +- .../docling_v2/2206.01062.doctags.txt | 55 +- .../docling_v2/2305.03393v1-pg9.doctags.txt | 5 +- .../docling_v2/2305.03393v1.doctags.txt | 49 +- .../docling_v2/redp5110_sampled.doctags.txt | 84 +- .../docling_v2/redp5110_sampled.pages.json | 2 +- .../groundtruth/docling_v1/ocr_test.json | 2 +- .../docling_v1/ocr_test.pages.json | 2 +- .../groundtruth/docling_v2/ocr_test.json | 2 +- .../docling_v2/ocr_test.pages.json | 2 +- 14 files changed, 829 insertions(+), 883 deletions(-) diff --git a/docs/examples/export_figures.py b/docs/examples/export_figures.py index f910753d..b2ecc43f 100644 --- a/docs/examples/export_figures.py +++ b/docs/examples/export_figures.py @@ -71,10 +71,16 @@ def main(): element.get_image(conv_res.document).save(fp, "PNG") # Save markdown with embedded pictures - content_md = conv_res.document.export_to_markdown(image_mode=ImageRefMode.EMBEDDED) md_filename = output_dir / f"{doc_filename}-with-images.md" - with md_filename.open("w") as fp: - fp.write(content_md) + conv_res.document.save_as_markdown(md_filename, image_mode=ImageRefMode.EMBEDDED) + + # Save markdown with externally referenced pictures + md_filename = output_dir / f"{doc_filename}-with-image-refs.md" + conv_res.document.save_as_markdown(md_filename, image_mode=ImageRefMode.REFERENCED) + + # Save HTML with externally referenced pictures + html_filename = output_dir / f"{doc_filename}-with-image-refs.html" + conv_res.document.save_as_html(html_filename, image_mode=ImageRefMode.REFERENCED) end_time = time.time() - start_time diff --git a/poetry.lock b/poetry.lock index b08ea4e7..32454b75 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,87 +13,87 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.6" +version = "3.11.7" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" files = [ - {file = "aiohttp-3.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7510b3ca2275691875ddf072a5b6cd129278d11fe09301add7d292fc8d3432de"}, - {file = "aiohttp-3.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfab0d2c3380c588fc925168533edb21d3448ad76c3eadc360ff963019161724"}, - {file = "aiohttp-3.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf02dba0f342f3a8228f43fae256aafc21c4bc85bffcf537ce4582e2b1565188"}, - {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92daedf7221392e7a7984915ca1b0481a94c71457c2f82548414a41d65555e70"}, - {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2274a7876e03429e3218589a6d3611a194bdce08c3f1e19962e23370b47c0313"}, - {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a2e1eae2d2f62f3660a1591e16e543b2498358593a73b193006fb89ee37abc6"}, - {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:978ec3fb0a42efcd98aae608f58c6cfcececaf0a50b4e86ee3ea0d0a574ab73b"}, - {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51f87b27d9219ed4e202ed8d6f1bb96f829e5eeff18db0d52f592af6de6bdbf"}, - {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:04d1a02a669d26e833c8099992c17f557e3b2fdb7960a0c455d7b1cbcb05121d"}, - {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3679d5fcbc7f1ab518ab4993f12f80afb63933f6afb21b9b272793d398303b98"}, - {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a4b24e03d04893b5c8ec9cd5f2f11dc9c8695c4e2416d2ac2ce6c782e4e5ffa5"}, - {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d9abdfd35ecff1c95f270b7606819a0e2de9e06fa86b15d9080de26594cf4c23"}, - {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8b5c3e7928a0ad80887a5eba1c1da1830512ddfe7394d805badda45c03db3109"}, - {file = "aiohttp-3.11.6-cp310-cp310-win32.whl", hash = "sha256:913dd9e9378f3c38aeb5c4fb2b8383d6490bc43f3b427ae79f2870651ae08f22"}, - {file = "aiohttp-3.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:4ac26d482c2000c3a59bf757a77adc972828c9d4177b4bd432a46ba682ca7271"}, - {file = "aiohttp-3.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26ac4c960ea8debf557357a172b3ef201f2236a462aefa1bc17683a75483e518"}, - {file = "aiohttp-3.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8b1f13ebc99fb98c7c13057b748f05224ccc36d17dee18136c695ef23faaf4ff"}, - {file = "aiohttp-3.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4679f1a47516189fab1774f7e45a6c7cac916224c91f5f94676f18d0b64ab134"}, - {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74491fdb3d140ff561ea2128cb7af9ba0a360067ee91074af899c9614f88a18f"}, - {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f51e1a90412d387e62aa2d243998c5eddb71373b199d811e6ed862a9f34f9758"}, - {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72ab89510511c3bb703d0bb5504787b11e0ed8be928ed2a7cf1cda9280628430"}, - {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6681c9e046d99646e8059266688374a063da85b2e4c0ebfa078cda414905d080"}, - {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a17f8a6d3ab72cbbd137e494d1a23fbd3ea973db39587941f32901bb3c5c350"}, - {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:867affc7612a314b95f74d93aac550ce0909bc6f0b6c658cc856890f4d326542"}, - {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:00d894ebd609d5a423acef885bd61e7f6a972153f99c5b3ea45fc01fe909196c"}, - {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:614c87be9d0d64477d1e4b663bdc5d1534fc0a7ebd23fb08347ab9fd5fe20fd7"}, - {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:533ed46cf772f28f3bffae81c0573d916a64dee590b5dfaa3f3d11491da05b95"}, - {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:589884cfbc09813afb1454816b45677e983442e146183143f988f7f5a040791a"}, - {file = "aiohttp-3.11.6-cp311-cp311-win32.whl", hash = "sha256:1da63633ba921669eec3d7e080459d4ceb663752b3dafb2f31f18edd248d2170"}, - {file = "aiohttp-3.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:d778ddda09622e7d83095cc8051698a0084c155a1474bfee9bac27d8613dbc31"}, - {file = "aiohttp-3.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:943a952df105a5305257984e7a1f5c2d0fd8564ff33647693c4d07eb2315446d"}, - {file = "aiohttp-3.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d24ec28b7658970a1f1d98608d67f88376c7e503d9d45ff2ba1949c09f2b358c"}, - {file = "aiohttp-3.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6720e809a660fdb9bec7c168c582e11cfedce339af0a5ca847a5d5b588dce826"}, - {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4252d30da0ada6e6841b325869c7ef5104b488e8dd57ec439892abbb8d7b3615"}, - {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f65f43ff01b238aa0b5c47962c83830a49577efe31bd37c1400c3d11d8a32835"}, - {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dc5933f6c9b26404444d36babb650664f984b8e5fa0694540e7b7315d11a4ff"}, - {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bf546ba0c029dfffc718c4b67748687fd4f341b07b7c8f1719d6a3a46164798"}, - {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c351d05bbeae30c088009c0bb3b17dda04fd854f91cc6196c448349cc98f71c3"}, - {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:10499079b063576fad1597898de3f9c0a2ce617c19cc7cd6b62fdcff6b408bf7"}, - {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:442ee82eda47dd59798d6866ce020fb8d02ea31ac9ac82b3d719ed349e6a9d52"}, - {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:86fce9127bc317119b34786d9e9ae8af4508a103158828a535f56d201da6ab19"}, - {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:973d26a5537ce5d050302eb3cd876457451745b1da0624cbb483217970e12567"}, - {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:532b8f038a4e001137d3600cea5d3439d1881df41bdf44d0f9651264d562fdf0"}, - {file = "aiohttp-3.11.6-cp312-cp312-win32.whl", hash = "sha256:4863c59f748dbe147da82b389931f2a676aebc9d3419813ed5ca32d057c9cb32"}, - {file = "aiohttp-3.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:5d7f481f82c18ac1f7986e31ba6eea9be8b2e2c86f1ef035b6866179b6c5dd68"}, - {file = "aiohttp-3.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:40f502350496ba4c6820816d3164f8a0297b9aa4e95d910da31beb189866a9df"}, - {file = "aiohttp-3.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9072669b0bffb40f1f6977d0b5e8a296edc964f9cefca3a18e68649c214d0ce3"}, - {file = "aiohttp-3.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:518160ecf4e6ffd61715bc9173da0925fcce44ae6c7ca3d3f098fe42585370fb"}, - {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69cc1b45115ac44795b63529aa5caa9674be057f11271f65474127b24fc1ce6"}, - {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6be90a6beced41653bda34afc891617c6d9e8276eef9c183f029f851f0a3c3d"}, - {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00c22fe2486308770d22ef86242101d7b0f1e1093ce178f2358f860e5149a551"}, - {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2607ebb783e3aeefa017ec8f34b506a727e6b6ab2c4b037d65f0bc7151f4430a"}, - {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f761d6819870c2a8537f75f3e2fc610b163150cefa01f9f623945840f601b2c"}, - {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e44d1bc6c88f5234115011842219ba27698a5f2deee245c963b180080572aaa2"}, - {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7e0cb6a1b1f499cb2aa0bab1c9f2169ad6913c735b7447e058e0c29c9e51c0b5"}, - {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a76b4d4ca34254dca066acff2120811e2a8183997c135fcafa558280f2cc53f3"}, - {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:69051c1e45fb18c0ae4d39a075532ff0b015982e7997f19eb5932eb4a3e05c17"}, - {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aff2ed18274c0bfe0c1d772781c87d5ca97ae50f439729007cec9644ee9b15fe"}, - {file = "aiohttp-3.11.6-cp313-cp313-win32.whl", hash = "sha256:2fbea25f2d44df809a46414a8baafa5f179d9dda7e60717f07bded56300589b3"}, - {file = "aiohttp-3.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:f77bc29a465c0f9f6573d1abe656d385fa673e34efe615bd4acc50899280ee47"}, - {file = "aiohttp-3.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:de6123b298d17bca9e53581f50a275b36e10d98e8137eb743ce69ee766dbdfe9"}, - {file = "aiohttp-3.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a10200f705f4fff00e148b7f41e5d1d929c7cd4ac523c659171a0ea8284cd6fb"}, - {file = "aiohttp-3.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b7776ef6901b54dd557128d96c71e412eec0c39ebc07567e405ac98737995aad"}, - {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e5c2a55583cd91936baf73d223807bb93ace6eb1fe54424782690f2707162ab"}, - {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b032bd6cf7422583bf44f233f4a1489fee53c6d35920123a208adc54e2aba41e"}, - {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fe2d99acbc5cf606f75d7347bf3a027c24c27bc052d470fb156f4cfcea5739"}, - {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84a79c366375c2250934d1238abe5d5ea7754c823a1c7df0c52bf0a2bfded6a9"}, - {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c33cbbe97dc94a34d1295a7bb68f82727bcbff2b284f73ae7e58ecc05903da97"}, - {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:19e4fb9ac727834b003338dcdd27dcfe0de4fb44082b01b34ed0ab67c3469fc9"}, - {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a97f6b2afbe1d27220c0c14ea978e09fb4868f462ef3d56d810d206bd2e057a2"}, - {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c3f7afeea03a9bc49be6053dfd30809cd442cc12627d6ca08babd1c1f9e04ccf"}, - {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:0d10967600ce5bb69ddcb3e18d84b278efb5199d8b24c3c71a4959c2f08acfd0"}, - {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:60f2f631b9fe7aa321fa0f0ff3f5d8b9f7f9b72afd4eecef61c33cf1cfea5d58"}, - {file = "aiohttp-3.11.6-cp39-cp39-win32.whl", hash = "sha256:4d2b75333deb5c5f61bac5a48bba3dbc142eebbd3947d98788b6ef9cc48628ae"}, - {file = "aiohttp-3.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:8908c235421972a2e02abcef87d16084aabfe825d14cc9a1debd609b3cfffbea"}, - {file = "aiohttp-3.11.6.tar.gz", hash = "sha256:fd9f55c1b51ae1c20a1afe7216a64a88d38afee063baa23c7fce03757023c999"}, + {file = "aiohttp-3.11.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8bedb1f6cb919af3b6353921c71281b1491f948ca64408871465d889b4ee1b66"}, + {file = "aiohttp-3.11.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f5022504adab881e2d801a88b748ea63f2a9d130e0b2c430824682a96f6534be"}, + {file = "aiohttp-3.11.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e22d1721c978a6494adc824e0916f9d187fa57baeda34b55140315fa2f740184"}, + {file = "aiohttp-3.11.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e993676c71288618eb07e20622572b1250d8713e7e00ab3aabae28cb70f3640d"}, + {file = "aiohttp-3.11.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e13a05db87d3b241c186d0936808d0e4e12decc267c617d54e9c643807e968b6"}, + {file = "aiohttp-3.11.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ba8d043fed7ffa117024d7ba66fdea011c0e7602327c6d73cacaea38abe4491"}, + {file = "aiohttp-3.11.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda3ed0a7869d2fa16aa41f9961ade73aa2c2e3b2fcb0a352524e7b744881889"}, + {file = "aiohttp-3.11.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43bfd25113c1e98aec6c70e26d5f4331efbf4aa9037ba9ad88f090853bf64d7f"}, + {file = "aiohttp-3.11.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3dd3e7e7c9ef3e7214f014f1ae260892286647b3cf7c7f1b644a568fd410f8ca"}, + {file = "aiohttp-3.11.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:78c657ece7a73b976905ab9ec8be9ef2df12ed8984c24598a1791c58ce3b4ce4"}, + {file = "aiohttp-3.11.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:db70a47987e34494b451a334605bee57a126fe8d290511349e86810b4be53b01"}, + {file = "aiohttp-3.11.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:9e67531370a3b07e49b280c1f8c2df67985c790ad2834d1b288a2f13cd341c5f"}, + {file = "aiohttp-3.11.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9202f184cc0582b1db15056f2225ab4c1e3dac4d9ade50dd0613ac3c46352ac2"}, + {file = "aiohttp-3.11.7-cp310-cp310-win32.whl", hash = "sha256:2257bdd5cf54a4039a4337162cd8048f05a724380a2283df34620f55d4e29341"}, + {file = "aiohttp-3.11.7-cp310-cp310-win_amd64.whl", hash = "sha256:b7215bf2b53bc6cb35808149980c2ae80a4ae4e273890ac85459c014d5aa60ac"}, + {file = "aiohttp-3.11.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cea52d11e02123f125f9055dfe0ccf1c3857225fb879e4a944fae12989e2aef2"}, + {file = "aiohttp-3.11.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3ce18f703b7298e7f7633efd6a90138d99a3f9a656cb52c1201e76cb5d79cf08"}, + {file = "aiohttp-3.11.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:670847ee6aeb3a569cd7cdfbe0c3bec1d44828bbfbe78c5d305f7f804870ef9e"}, + {file = "aiohttp-3.11.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dda726f89bfa5c465ba45b76515135a3ece0088dfa2da49b8bb278f3bdeea12"}, + {file = "aiohttp-3.11.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25b74a811dba37c7ea6a14d99eb9402d89c8d739d50748a75f3cf994cf19c43"}, + {file = "aiohttp-3.11.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5522ee72f95661e79db691310290c4618b86dff2d9b90baedf343fd7a08bf79"}, + {file = "aiohttp-3.11.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fbf41a6bbc319a7816ae0f0177c265b62f2a59ad301a0e49b395746eb2a9884"}, + {file = "aiohttp-3.11.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59ee1925b5a5efdf6c4e7be51deee93984d0ac14a6897bd521b498b9916f1544"}, + {file = "aiohttp-3.11.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:24054fce8c6d6f33a3e35d1c603ef1b91bbcba73e3f04a22b4f2f27dac59b347"}, + {file = "aiohttp-3.11.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:351849aca2c6f814575c1a485c01c17a4240413f960df1bf9f5deb0003c61a53"}, + {file = "aiohttp-3.11.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:12724f3a211fa243570e601f65a8831372caf1a149d2f1859f68479f07efec3d"}, + {file = "aiohttp-3.11.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:7ea4490360b605804bea8173d2d086b6c379d6bb22ac434de605a9cbce006e7d"}, + {file = "aiohttp-3.11.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e0bf378db07df0a713a1e32381a1b277e62ad106d0dbe17b5479e76ec706d720"}, + {file = "aiohttp-3.11.7-cp311-cp311-win32.whl", hash = "sha256:cd8d62cab363dfe713067027a5adb4907515861f1e4ce63e7be810b83668b847"}, + {file = "aiohttp-3.11.7-cp311-cp311-win_amd64.whl", hash = "sha256:bf0e6cce113596377cadda4e3ac5fb89f095bd492226e46d91b4baef1dd16f60"}, + {file = "aiohttp-3.11.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4bb7493c3e3a36d3012b8564bd0e2783259ddd7ef3a81a74f0dbfa000fce48b7"}, + {file = "aiohttp-3.11.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e143b0ef9cb1a2b4f74f56d4fbe50caa7c2bb93390aff52f9398d21d89bc73ea"}, + {file = "aiohttp-3.11.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f7c58a240260822dc07f6ae32a0293dd5bccd618bb2d0f36d51c5dbd526f89c0"}, + {file = "aiohttp-3.11.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d20cfe63a1c135d26bde8c1d0ea46fd1200884afbc523466d2f1cf517d1fe33"}, + {file = "aiohttp-3.11.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12e4d45847a174f77b2b9919719203769f220058f642b08504cf8b1cf185dacf"}, + {file = "aiohttp-3.11.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf4efa2d01f697a7dbd0509891a286a4af0d86902fc594e20e3b1712c28c0106"}, + {file = "aiohttp-3.11.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee6a4cdcbf54b8083dc9723cdf5f41f722c00db40ccf9ec2616e27869151129"}, + {file = "aiohttp-3.11.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c6095aaf852c34f42e1bd0cf0dc32d1e4b48a90bfb5054abdbb9d64b36acadcb"}, + {file = "aiohttp-3.11.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1cf03d27885f8c5ebf3993a220cc84fc66375e1e6e812731f51aab2b2748f4a6"}, + {file = "aiohttp-3.11.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:1a17f6a230f81eb53282503823f59d61dff14fb2a93847bf0399dc8e87817307"}, + {file = "aiohttp-3.11.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:481f10a1a45c5f4c4a578bbd74cff22eb64460a6549819242a87a80788461fba"}, + {file = "aiohttp-3.11.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:db37248535d1ae40735d15bdf26ad43be19e3d93ab3f3dad8507eb0f85bb8124"}, + {file = "aiohttp-3.11.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9d18a8b44ec8502a7fde91446cd9c9b95ce7c49f1eacc1fb2358b8907d4369fd"}, + {file = "aiohttp-3.11.7-cp312-cp312-win32.whl", hash = "sha256:3d1c9c15d3999107cbb9b2d76ca6172e6710a12fda22434ee8bd3f432b7b17e8"}, + {file = "aiohttp-3.11.7-cp312-cp312-win_amd64.whl", hash = "sha256:018f1b04883a12e77e7fc161934c0f298865d3a484aea536a6a2ca8d909f0ba0"}, + {file = "aiohttp-3.11.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:241a6ca732d2766836d62c58c49ca7a93d08251daef0c1e3c850df1d1ca0cbc4"}, + {file = "aiohttp-3.11.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:aa3705a8d14de39898da0fbad920b2a37b7547c3afd2a18b9b81f0223b7d0f68"}, + {file = "aiohttp-3.11.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9acfc7f652b31853eed3b92095b0acf06fd5597eeea42e939bd23a17137679d5"}, + {file = "aiohttp-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcefcf2915a2dbdbce37e2fc1622129a1918abfe3d06721ce9f6cdac9b6d2eaa"}, + {file = "aiohttp-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c1f6490dd1862af5aae6cfcf2a274bffa9a5b32a8f5acb519a7ecf5a99a88866"}, + {file = "aiohttp-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac5462582d6561c1c1708853a9faf612ff4e5ea5e679e99be36143d6eabd8e"}, + {file = "aiohttp-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1a6309005acc4b2bcc577ba3b9169fea52638709ffacbd071f3503264620da"}, + {file = "aiohttp-3.11.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5b973cce96793725ef63eb449adfb74f99c043c718acb76e0d2a447ae369962"}, + {file = "aiohttp-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ce91a24aac80de6be8512fb1c4838a9881aa713f44f4e91dd7bb3b34061b497d"}, + {file = "aiohttp-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:875f7100ce0e74af51d4139495eec4025affa1a605280f23990b6434b81df1bd"}, + {file = "aiohttp-3.11.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c171fc35d3174bbf4787381716564042a4cbc008824d8195eede3d9b938e29a8"}, + {file = "aiohttp-3.11.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ee9afa1b0d2293c46954f47f33e150798ad68b78925e3710044e0d67a9487791"}, + {file = "aiohttp-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8360c7cc620abb320e1b8d603c39095101391a82b1d0be05fb2225471c9c5c52"}, + {file = "aiohttp-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7a9318da4b4ada9a67c1dd84d1c0834123081e746bee311a16bb449f363d965e"}, + {file = "aiohttp-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:fc6da202068e0a268e298d7cd09b6e9f3997736cd9b060e2750963754552a0a9"}, + {file = "aiohttp-3.11.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:17829f37c0d31d89aa6b8b010475a10233774771f9b6dc2cc352ea4f8ce95d9a"}, + {file = "aiohttp-3.11.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d6177077a31b1aecfc3c9070bd2f11419dbb4a70f30f4c65b124714f525c2e48"}, + {file = "aiohttp-3.11.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:badda65ac99555791eed75e234afb94686ed2317670c68bff8a4498acdaee935"}, + {file = "aiohttp-3.11.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0de6466b9d742b4ee56fe1b2440706e225eb48c77c63152b1584864a236e7a50"}, + {file = "aiohttp-3.11.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04b0cc74d5a882c9dacaeeccc1444f0233212b6f5be8bc90833feef1e1ce14b9"}, + {file = "aiohttp-3.11.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c7af3e50e5903d21d7b935aceed901cc2475463bc16ddd5587653548661fdb"}, + {file = "aiohttp-3.11.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c63f898f683d1379b9be5afc3dd139e20b30b0b1e0bf69a3fc3681f364cf1629"}, + {file = "aiohttp-3.11.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fdadc3f6a32d6eca45f9a900a254757fd7855dfb2d8f8dcf0e88f0fae3ff8eb1"}, + {file = "aiohttp-3.11.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d329300fb23e14ed1f8c6d688dfd867d1dcc3b1d7cd49b7f8c5b44e797ce0932"}, + {file = "aiohttp-3.11.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5578cf40440eafcb054cf859964bc120ab52ebe0e0562d2b898126d868749629"}, + {file = "aiohttp-3.11.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:7b2f8107a3c329789f3c00b2daad0e35f548d0a55cda6291579136622099a46e"}, + {file = "aiohttp-3.11.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:43dd89a6194f6ab02a3fe36b09e42e2df19c211fc2050ce37374d96f39604997"}, + {file = "aiohttp-3.11.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d2fa6fc7cc865d26ff42480ac9b52b8c9b7da30a10a6442a9cdf429de840e949"}, + {file = "aiohttp-3.11.7-cp39-cp39-win32.whl", hash = "sha256:a7d9a606355655617fee25dd7e54d3af50804d002f1fd3118dd6312d26692d70"}, + {file = "aiohttp-3.11.7-cp39-cp39-win_amd64.whl", hash = "sha256:53c921b58fdc6485d6b2603e0132bb01cd59b8f0620ffc0907f525e0ba071687"}, + {file = "aiohttp-3.11.7.tar.gz", hash = "sha256:01a8aca4af3da85cea5c90141d23f4b0eee3cbecfd33b029a45a80f28c66c668"}, ] [package.dependencies] @@ -730,37 +730,37 @@ vision = ["Pillow (>=9.4.0)"] [[package]] name = "debugpy" -version = "1.8.8" +version = "1.8.9" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.8-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:e59b1607c51b71545cb3496876544f7186a7a27c00b436a62f285603cc68d1c6"}, - {file = "debugpy-1.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6531d952b565b7cb2fbd1ef5df3d333cf160b44f37547a4e7cf73666aca5d8d"}, - {file = "debugpy-1.8.8-cp310-cp310-win32.whl", hash = "sha256:b01f4a5e5c5fb1d34f4ccba99a20ed01eabc45a4684f4948b5db17a319dfb23f"}, - {file = "debugpy-1.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:535f4fb1c024ddca5913bb0eb17880c8f24ba28aa2c225059db145ee557035e9"}, - {file = "debugpy-1.8.8-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:c399023146e40ae373753a58d1be0a98bf6397fadc737b97ad612886b53df318"}, - {file = "debugpy-1.8.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09cc7b162586ea2171eea055985da2702b0723f6f907a423c9b2da5996ad67ba"}, - {file = "debugpy-1.8.8-cp311-cp311-win32.whl", hash = "sha256:eea8821d998ebeb02f0625dd0d76839ddde8cbf8152ebbe289dd7acf2cdc6b98"}, - {file = "debugpy-1.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:d4483836da2a533f4b1454dffc9f668096ac0433de855f0c22cdce8c9f7e10c4"}, - {file = "debugpy-1.8.8-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:0cc94186340be87b9ac5a707184ec8f36547fb66636d1029ff4f1cc020e53996"}, - {file = "debugpy-1.8.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64674e95916e53c2e9540a056e5f489e0ad4872645399d778f7c598eacb7b7f9"}, - {file = "debugpy-1.8.8-cp312-cp312-win32.whl", hash = "sha256:5c6e885dbf12015aed73770f29dec7023cb310d0dc2ba8bfbeb5c8e43f80edc9"}, - {file = "debugpy-1.8.8-cp312-cp312-win_amd64.whl", hash = "sha256:19ffbd84e757a6ca0113574d1bf5a2298b3947320a3e9d7d8dc3377f02d9f864"}, - {file = "debugpy-1.8.8-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:705cd123a773d184860ed8dae99becd879dfec361098edbefb5fc0d3683eb804"}, - {file = "debugpy-1.8.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890fd16803f50aa9cb1a9b9b25b5ec321656dd6b78157c74283de241993d086f"}, - {file = "debugpy-1.8.8-cp313-cp313-win32.whl", hash = "sha256:90244598214bbe704aa47556ec591d2f9869ff9e042e301a2859c57106649add"}, - {file = "debugpy-1.8.8-cp313-cp313-win_amd64.whl", hash = "sha256:4b93e4832fd4a759a0c465c967214ed0c8a6e8914bced63a28ddb0dd8c5f078b"}, - {file = "debugpy-1.8.8-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:143ef07940aeb8e7316de48f5ed9447644da5203726fca378f3a6952a50a9eae"}, - {file = "debugpy-1.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95651bdcbfd3b27a408869a53fbefcc2bcae13b694daee5f1365b1b83a00113"}, - {file = "debugpy-1.8.8-cp38-cp38-win32.whl", hash = "sha256:26b461123a030e82602a750fb24d7801776aa81cd78404e54ab60e8b5fecdad5"}, - {file = "debugpy-1.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3cbf1833e644a3100eadb6120f25be8a532035e8245584c4f7532937edc652a"}, - {file = "debugpy-1.8.8-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:53709d4ec586b525724819dc6af1a7703502f7e06f34ded7157f7b1f963bb854"}, - {file = "debugpy-1.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a9c013077a3a0000e83d97cf9cc9328d2b0bbb31f56b0e99ea3662d29d7a6a2"}, - {file = "debugpy-1.8.8-cp39-cp39-win32.whl", hash = "sha256:ffe94dd5e9a6739a75f0b85316dc185560db3e97afa6b215628d1b6a17561cb2"}, - {file = "debugpy-1.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5c0e5a38c7f9b481bf31277d2f74d2109292179081f11108e668195ef926c0f9"}, - {file = "debugpy-1.8.8-py2.py3-none-any.whl", hash = "sha256:ec684553aba5b4066d4de510859922419febc710df7bba04fe9e7ef3de15d34f"}, - {file = "debugpy-1.8.8.zip", hash = "sha256:e6355385db85cbd666be703a96ab7351bc9e6c61d694893206f8001e22aee091"}, + {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"}, + {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"}, + {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"}, + {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"}, + {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"}, + {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"}, + {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"}, + {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"}, + {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"}, + {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"}, + {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"}, + {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"}, + {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"}, + {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"}, + {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"}, + {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"}, + {file = "debugpy-1.8.9-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:472a3994999fe6c0756945ffa359e9e7e2d690fb55d251639d07208dbc37caea"}, + {file = "debugpy-1.8.9-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365e556a4772d7d0d151d7eb0e77ec4db03bcd95f26b67b15742b88cacff88e9"}, + {file = "debugpy-1.8.9-cp38-cp38-win32.whl", hash = "sha256:54a7e6d3014c408eb37b0b06021366ee985f1539e12fe49ca2ee0d392d9ceca5"}, + {file = "debugpy-1.8.9-cp38-cp38-win_amd64.whl", hash = "sha256:8e99c0b1cc7bf86d83fb95d5ccdc4ad0586d4432d489d1f54e4055bcc795f693"}, + {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"}, + {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"}, + {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"}, + {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"}, + {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"}, + {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"}, ] [[package]] @@ -879,13 +879,13 @@ files = [ [[package]] name = "docling-core" -version = "2.4.0" +version = "2.5.1" description = "A python library to define and validate data types in Docling." optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "docling_core-2.4.0-py3-none-any.whl", hash = "sha256:dbc6b48d9d8b20800a9eb796d69a33660202c761bf53092697b7b07d28842cc3"}, - {file = "docling_core-2.4.0.tar.gz", hash = "sha256:93f817b0105d564bbd334f8314b359b8a3fb234ec47b5013a020c9cb6ebd2e87"}, + {file = "docling_core-2.5.1-py3-none-any.whl", hash = "sha256:e4a5626520714c25a5ec2f9f7495407e730485257c2272e8467faae7357435bf"}, + {file = "docling_core-2.5.1.tar.gz", hash = "sha256:e9a7c7c46f869b13747436a2ce42df3632af655e1a3af574dfcd114e71dcbb75"}, ] [package.dependencies] @@ -893,7 +893,8 @@ jsonref = ">=1.1.0,<2.0.0" jsonschema = ">=4.16.0,<5.0.0" pandas = ">=2.1.4,<3.0.0" pillow = ">=10.3.0,<11.0.0" -pydantic = ">=2.6.0,<3.0.0" +pydantic = ">=2.6.0,<2.10" +pyyaml = ">=5.1,<7.0.0" tabulate = ">=0.9.0,<0.10.0" [[package]] @@ -922,49 +923,49 @@ tqdm = ">=4.64.0,<5.0.0" [[package]] name = "docling-parse" -version = "2.0.5" +version = "2.1.2" description = "Simple package to extract text with coordinates from programmatic PDFs" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "docling_parse-2.0.5-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:8e35b43fecba970d5d86ab44a176761e868a77195d023ec8a7d9ab40625e8bf2"}, - {file = "docling_parse-2.0.5-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:9be80f15f922eb71c27fa0ea6b028504a1b5d762f580dee99e82ee1edb6534e7"}, - {file = "docling_parse-2.0.5-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:fe372cd1ac79966c166be52e31dd0807cb3ead76a86177a00911cc3d6758a403"}, - {file = "docling_parse-2.0.5-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6c31c0fac1ed2807d58ed3b61b73fd7a631430d862e1a7f9f1c32838a35578bc"}, - {file = "docling_parse-2.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3a5afd88f39bdec3ea4c91bdf94c53789182d304832532aa8352a17cd6f847a"}, - {file = "docling_parse-2.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d50bb7e2e4509320c41252ec6f07e627ced12f78d8dbd908385aed5c878f2f"}, - {file = "docling_parse-2.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:362f3050e4bba93921054086993050897ba9a40e0ea00e0fd55f5776e14db7fc"}, - {file = "docling_parse-2.0.5-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:a61ca5cd4d3d6336e9ee7ead3184943e6e01e880efb892b64c8796933c3b2965"}, - {file = "docling_parse-2.0.5-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:d7b96bf3f0d8c97fbabc23dcb3c6b7f91b68653c2d04ed74cbb2d7f808165296"}, - {file = "docling_parse-2.0.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:07c5caf808dad544a03955ef80411c42193d4c347100e7767eb2e4bf8fcc7c2a"}, - {file = "docling_parse-2.0.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:31f941457ba583a078115d4f64e414fb6b08d62c8208e6f42df8b55cd4eb2dd5"}, - {file = "docling_parse-2.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96439c99a52181b1ac7ddc3754a93a08251103e79bf98d763fb36a0012576969"}, - {file = "docling_parse-2.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e3e9af47e64e61ecff7e7b4ba648604b1fb4d7d3a75ea6121308a9f7aece4ea"}, - {file = "docling_parse-2.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:9ff6698b75e5e83ea6740b383bbe29d01fc8db7a73625e83e3ab4f24391a0fa1"}, - {file = "docling_parse-2.0.5-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:47a60672148e228b97ed26d6abaf72b4157bb66338be6eaacb9838fe20ae88d3"}, - {file = "docling_parse-2.0.5-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:dee45459109e05f39b0d8be434b56dd44e2d6b79dbd2c2840c7e8a55881d80ae"}, - {file = "docling_parse-2.0.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2a256718a2833fba8da7508548e0421f7f17ec3183c1afc1046a9de1f006ff86"}, - {file = "docling_parse-2.0.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:ac195e295b95e6cf5f06b54caabf610952115419dcd1d79f4bfea8b83fa4269f"}, - {file = "docling_parse-2.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b2e3bb31e3d6319fb9be8a7b424ddd514a34d5f28fd5e6e83bd45a7f1e5687"}, - {file = "docling_parse-2.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e62d080c1b01a60049384d2f7c3b0484c61f894068a779c19b69034a44d8ed6f"}, - {file = "docling_parse-2.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:7b5ba90818ab3cdfb623d4ce3c65949956e0c3dba6c58ede0d142703ec0b88e5"}, - {file = "docling_parse-2.0.5-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:287c5466f121499d3352bb7f8255d7eb7c39d7d32f9424357d32993f2655322e"}, - {file = "docling_parse-2.0.5-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:33f1ea27629f8ac3956edc27453be06612d9455e80827431545b754be9039edd"}, - {file = "docling_parse-2.0.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8fbf564bf3ae5abc1422a391013048eaa8ead00f4876dd8b2fa7fd6e8538d622"}, - {file = "docling_parse-2.0.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5d1cd612f41a482318cb098904229fec1d55de36e30442063105bd892df7e729"}, - {file = "docling_parse-2.0.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daa8ddb6ad2bc140e735f405cc22a19b99cb493fdb244424cd29544f78c823be"}, - {file = "docling_parse-2.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18d5acd255c15c3e570f1aeb0c2600905237baf20786df6b01f065f49ad7d413"}, - {file = "docling_parse-2.0.5-cp313-cp313-win_amd64.whl", hash = "sha256:9adac3989b93c13f5030d537a7d49ee9e34564e49995b6dccbbb3d7f5431601a"}, - {file = "docling_parse-2.0.5-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:6b41f153626df3616270478d2b293888b6c79b9dc3fbd9581ca964c5ab246d9c"}, - {file = "docling_parse-2.0.5-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:4b69f47859e34959878874c82e723fff235a47250404a71a996c71b8a44f5664"}, - {file = "docling_parse-2.0.5-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:6943cd9562a298b5eb9e92be0cb5b023eca5290aecbc36411d54e7bb753beb9d"}, - {file = "docling_parse-2.0.5-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:0d1e17826231aaaf7283e20dc47ac7e11d881d663e3ae79c8b552a144a191570"}, - {file = "docling_parse-2.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a2f68a02267bd5467460330d317956d22a90b3cb63f0c83346a97d018eff161"}, - {file = "docling_parse-2.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c654e484dc239fc2f588ca5368e8db68931a22eadb97a8d14693e3cfa7d2fe2"}, - {file = "docling_parse-2.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:e839adabfcb5ad9f5c1baf4d5a8acd6c85799a440b7809481c4ab161e8a1d063"}, - {file = "docling_parse-2.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7ad900a581f404d219b2f7a87aa17321936e5ae1ae7f3fd4fc30801dab9f36d0"}, - {file = "docling_parse-2.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:96391070723ac954fcef1841e473f1c875b76208717cb4789694e2c37e46066c"}, - {file = "docling_parse-2.0.5.tar.gz", hash = "sha256:09ac1fff90ab2cb942ad70eee59213a48b737e2df002186e8253b439c0ea9285"}, + {file = "docling_parse-2.1.2-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:140319e3eac73f9768d35313739891ae637af57fda03eade17d90e2d28ad80eb"}, + {file = "docling_parse-2.1.2-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:cec968a436ad14e8a45a72fc0e0074750eee28548a14f3c3df5157a68ac958e7"}, + {file = "docling_parse-2.1.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:c84eba992fee49d190cf4834fd44ef4e6549c3f1fcd41b91622114703a7e4a87"}, + {file = "docling_parse-2.1.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:ae02af07f3dd335f56383a83efdc1f6450b7d38e21e1131005dbd341eb38e47d"}, + {file = "docling_parse-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fa0731e97d2644ff8a3257ae53208b88be3ddc6a4bc54fbe39e21f8395530f0"}, + {file = "docling_parse-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d26d60136aab5f4a3a773922a8dcc530334165331660d074cd88dcd5d91206cd"}, + {file = "docling_parse-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:76eef41d50017c2fc531face44c1a35bef66095951622617d0f281e35d18e9e0"}, + {file = "docling_parse-2.1.2-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:7f1ad037d3ac0d80252c493e73b12688ded3ece9bae7954ba62765506c139d21"}, + {file = "docling_parse-2.1.2-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:9f1360c0558c84f4b6633b0882256f6d621fd9e52179acae39c727a43b48d937"}, + {file = "docling_parse-2.1.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:5d505c2d3e9eff4f3064b4d1f017a3c6577b5d8ba55540d558f4899561862956"}, + {file = "docling_parse-2.1.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:58f552f61ac35c02890b03fe59b06552353314c3c1ee2a050c68a8a206ab1b4b"}, + {file = "docling_parse-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22069dadcfdcebc02e36e27f80d452f1265a5a97d894f2391490bf099bc5432c"}, + {file = "docling_parse-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f68942b31684a021e27b9b07d27ed139911444b33963f7e0b5d2dbda8aaa5cb1"}, + {file = "docling_parse-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:d87e3fbf1549cd8bc171240c18584ba8c32f83963b5af66b2a70a2bc3af56d2e"}, + {file = "docling_parse-2.1.2-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:5b00b81fa8eb0b34621f1ef9d07623d7dbcc354a33295a5b0c4209c39b1ff8eb"}, + {file = "docling_parse-2.1.2-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:1b99b122f941d0f19e92a215e589b94f49db899c5eec0147e83824652b18ce74"}, + {file = "docling_parse-2.1.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:744fe368a8fa49778e881c1052427c38a7d0e367273fcdef493e047513783108"}, + {file = "docling_parse-2.1.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b8a3e558a96f7d593269be75ba4147ebe221f5edad3d41244cef3533e8a51b74"}, + {file = "docling_parse-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afcf53bce8c91886c1360e625e51d15ebfb36d37cd53b6e019e86ce1118c1d0c"}, + {file = "docling_parse-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d25fc4fb8f16a8ed5bc8c4f00a77739d2536732c0ddae16340b1859adf68fd"}, + {file = "docling_parse-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:28a7f49a865a0cd71033a7899aac00c7d2e3b6c3a76488f8676ba0fc353d9f3a"}, + {file = "docling_parse-2.1.2-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:ad1560532cdf15dcb4a6005c8b7fe19def0e910e6125863f14978d6d07a1ba47"}, + {file = "docling_parse-2.1.2-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:19003b1bb64cd5a40999a3c5ffcb9a9d9608a073949b76acc58d58fb5054ea03"}, + {file = "docling_parse-2.1.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:041bf1c72a23d62e2dd30dcc3508222f6674e85b0f1d19a3196fd6d7b5f56015"}, + {file = "docling_parse-2.1.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:12403c26e833d8fdf0f406d2895f5108fd07b64a4d929c9105ca60f09b882c34"}, + {file = "docling_parse-2.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1082e227af3e31085eff3e96103b09becdf95324304e17ce0b1b61c43b93fbb7"}, + {file = "docling_parse-2.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77b36e36d1e07a06a1616ee281079d6b972c3059f2fa02dafcfc225a41e5bd1a"}, + {file = "docling_parse-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:4300df86657935b0109c44702857ebf3d0713f1bbe376982f369504a762e2fef"}, + {file = "docling_parse-2.1.2-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:912fe44507f209d997e1183f38a71d4e14c31d53a164fb862631822624dad892"}, + {file = "docling_parse-2.1.2-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:10ff1928b12099f446fcd0b043182173e6b02ce74008ea6ce921d56cdee8964e"}, + {file = "docling_parse-2.1.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:391ad31a4086fabbc290851432f4cf0bdc366e07a454adf49e42029898d6b477"}, + {file = "docling_parse-2.1.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:ebf478e99c0c16d7dad30c0fdb1f5e236ae94d48da8dec48dbe5f0841eead4ed"}, + {file = "docling_parse-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b1c904017330d096981b7db6b225b66aff1cebdc422843103a782121d6e8be8"}, + {file = "docling_parse-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bc8ec6ad1bec6168991b895d749b222bef14b568d1d9f6c06efaeb1645dfe12"}, + {file = "docling_parse-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:e6eb130aa367247e1f32225bb1608cee901d711b475527404bbc4330c9199b99"}, + {file = "docling_parse-2.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ef88d565c761b48f8a175fd474e068c0da9d4401e22d3e38de73e2f00f3df2d1"}, + {file = "docling_parse-2.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bdc8ccbdc4ab91b829b8c421ad89da276442a2c891eda1f6507f248d0bd8dff9"}, + {file = "docling_parse-2.1.2.tar.gz", hash = "sha256:3c249f50e6351eb6126331a179fe86b64dc2073e9f881d52f8c8fb391633b89e"}, ] [package.dependencies] @@ -1017,27 +1018,6 @@ Shapely = "*" torch = "*" torchvision = ">=0.5" -[[package]] -name = "environs" -version = "9.5.0" -description = "simplified environment variable parsing" -optional = false -python-versions = ">=3.6" -files = [ - {file = "environs-9.5.0-py2.py3-none-any.whl", hash = "sha256:1e549569a3de49c05f856f40bce86979e7d5ffbbc4398e7f338574c220189124"}, - {file = "environs-9.5.0.tar.gz", hash = "sha256:a76307b36fbe856bdca7ee9161e6c466fd7fcffc297109a118c59b54e27e30c9"}, -] - -[package.dependencies] -marshmallow = ">=3.0.0" -python-dotenv = "*" - -[package.extras] -dev = ["dj-database-url", "dj-email-url", "django-cache-url", "flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)", "pytest", "tox"] -django = ["dj-database-url", "dj-email-url", "django-cache-url"] -lint = ["flake8 (==4.0.1)", "flake8-bugbear (==21.9.2)", "mypy (==0.910)", "pre-commit (>=2.4,<3.0)"] -tests = ["dj-database-url", "dj-email-url", "django-cache-url", "pytest"] - [[package]] name = "et-xmlfile" version = "2.0.0" @@ -1359,70 +1339,70 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", [[package]] name = "grpcio" -version = "1.68.0" +version = "1.67.1" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio-1.68.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:619b5d0f29f4f5351440e9343224c3e19912c21aeda44e0c49d0d147a8d01544"}, - {file = "grpcio-1.68.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:a59f5822f9459bed098ffbceb2713abbf7c6fd13f2b9243461da5c338d0cd6c3"}, - {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c03d89df516128febc5a7e760d675b478ba25802447624edf7aa13b1e7b11e2a"}, - {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44bcbebb24363d587472089b89e2ea0ab2e2b4df0e4856ba4c0b087c82412121"}, - {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79f81b7fbfb136247b70465bd836fa1733043fdee539cd6031cb499e9608a110"}, - {file = "grpcio-1.68.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:88fb2925789cfe6daa20900260ef0a1d0a61283dfb2d2fffe6194396a354c618"}, - {file = "grpcio-1.68.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:99f06232b5c9138593ae6f2e355054318717d32a9c09cdc5a2885540835067a1"}, - {file = "grpcio-1.68.0-cp310-cp310-win32.whl", hash = "sha256:a6213d2f7a22c3c30a479fb5e249b6b7e648e17f364598ff64d08a5136fe488b"}, - {file = "grpcio-1.68.0-cp310-cp310-win_amd64.whl", hash = "sha256:15327ab81131ef9b94cb9f45b5bd98803a179c7c61205c8c0ac9aff9d6c4e82a"}, - {file = "grpcio-1.68.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:3b2b559beb2d433129441783e5f42e3be40a9e1a89ec906efabf26591c5cd415"}, - {file = "grpcio-1.68.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e46541de8425a4d6829ac6c5d9b16c03c292105fe9ebf78cb1c31e8d242f9155"}, - {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c1245651f3c9ea92a2db4f95d37b7597db6b246d5892bca6ee8c0e90d76fb73c"}, - {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1931c7aa85be0fa6cea6af388e576f3bf6baee9e5d481c586980c774debcb4"}, - {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b0ff09c81e3aded7a183bc6473639b46b6caa9c1901d6f5e2cba24b95e59e30"}, - {file = "grpcio-1.68.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8c73f9fbbaee1a132487e31585aa83987ddf626426d703ebcb9a528cf231c9b1"}, - {file = "grpcio-1.68.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6b2f98165ea2790ea159393a2246b56f580d24d7da0d0342c18a085299c40a75"}, - {file = "grpcio-1.68.0-cp311-cp311-win32.whl", hash = "sha256:e1e7ed311afb351ff0d0e583a66fcb39675be112d61e7cfd6c8269884a98afbc"}, - {file = "grpcio-1.68.0-cp311-cp311-win_amd64.whl", hash = "sha256:e0d2f68eaa0a755edd9a47d40e50dba6df2bceda66960dee1218da81a2834d27"}, - {file = "grpcio-1.68.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:8af6137cc4ae8e421690d276e7627cfc726d4293f6607acf9ea7260bd8fc3d7d"}, - {file = "grpcio-1.68.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4028b8e9a3bff6f377698587d642e24bd221810c06579a18420a17688e421af7"}, - {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f60fa2adf281fd73ae3a50677572521edca34ba373a45b457b5ebe87c2d01e1d"}, - {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e18589e747c1e70b60fab6767ff99b2d0c359ea1db8a2cb524477f93cdbedf5b"}, - {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0d30f3fee9372796f54d3100b31ee70972eaadcc87314be369360248a3dcffe"}, - {file = "grpcio-1.68.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7e0a3e72c0e9a1acab77bef14a73a416630b7fd2cbd893c0a873edc47c42c8cd"}, - {file = "grpcio-1.68.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a831dcc343440969aaa812004685ed322cdb526cd197112d0db303b0da1e8659"}, - {file = "grpcio-1.68.0-cp312-cp312-win32.whl", hash = "sha256:5a180328e92b9a0050958ced34dddcb86fec5a8b332f5a229e353dafc16cd332"}, - {file = "grpcio-1.68.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bddd04a790b69f7a7385f6a112f46ea0b34c4746f361ebafe9ca0be567c78e9"}, - {file = "grpcio-1.68.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:fc05759ffbd7875e0ff2bd877be1438dfe97c9312bbc558c8284a9afa1d0f40e"}, - {file = "grpcio-1.68.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:15fa1fe25d365a13bc6d52fcac0e3ee1f9baebdde2c9b3b2425f8a4979fccea1"}, - {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:32a9cb4686eb2e89d97022ecb9e1606d132f85c444354c17a7dbde4a455e4a3b"}, - {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dba037ff8d284c8e7ea9a510c8ae0f5b016004f13c3648f72411c464b67ff2fb"}, - {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0efbbd849867e0e569af09e165363ade75cf84f5229b2698d53cf22c7a4f9e21"}, - {file = "grpcio-1.68.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:4e300e6978df0b65cc2d100c54e097c10dfc7018b9bd890bbbf08022d47f766d"}, - {file = "grpcio-1.68.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:6f9c7ad1a23e1047f827385f4713b5b8c6c7d325705be1dd3e31fb00dcb2f665"}, - {file = "grpcio-1.68.0-cp313-cp313-win32.whl", hash = "sha256:3ac7f10850fd0487fcce169c3c55509101c3bde2a3b454869639df2176b60a03"}, - {file = "grpcio-1.68.0-cp313-cp313-win_amd64.whl", hash = "sha256:afbf45a62ba85a720491bfe9b2642f8761ff348006f5ef67e4622621f116b04a"}, - {file = "grpcio-1.68.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:f8f695d9576ce836eab27ba7401c60acaf9ef6cf2f70dfe5462055ba3df02cc3"}, - {file = "grpcio-1.68.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9fe1b141cda52f2ca73e17d2d3c6a9f3f3a0c255c216b50ce616e9dca7e3441d"}, - {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:4df81d78fd1646bf94ced4fb4cd0a7fe2e91608089c522ef17bc7db26e64effd"}, - {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46a2d74d4dd8993151c6cd585594c082abe74112c8e4175ddda4106f2ceb022f"}, - {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a17278d977746472698460c63abf333e1d806bd41f2224f90dbe9460101c9796"}, - {file = "grpcio-1.68.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:15377bce516b1c861c35e18eaa1c280692bf563264836cece693c0f169b48829"}, - {file = "grpcio-1.68.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cc5f0a4f5904b8c25729a0498886b797feb817d1fd3812554ffa39551112c161"}, - {file = "grpcio-1.68.0-cp38-cp38-win32.whl", hash = "sha256:def1a60a111d24376e4b753db39705adbe9483ef4ca4761f825639d884d5da78"}, - {file = "grpcio-1.68.0-cp38-cp38-win_amd64.whl", hash = "sha256:55d3b52fd41ec5772a953612db4e70ae741a6d6ed640c4c89a64f017a1ac02b5"}, - {file = "grpcio-1.68.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:0d230852ba97654453d290e98d6aa61cb48fa5fafb474fb4c4298d8721809354"}, - {file = "grpcio-1.68.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:50992f214264e207e07222703c17d9cfdcc2c46ed5a1ea86843d440148ebbe10"}, - {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:14331e5c27ed3545360464a139ed279aa09db088f6e9502e95ad4bfa852bb116"}, - {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f84890b205692ea813653ece4ac9afa2139eae136e419231b0eec7c39fdbe4c2"}, - {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0cf343c6f4f6aa44863e13ec9ddfe299e0be68f87d68e777328bff785897b05"}, - {file = "grpcio-1.68.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:fd2c2d47969daa0e27eadaf15c13b5e92605c5e5953d23c06d0b5239a2f176d3"}, - {file = "grpcio-1.68.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:18668e36e7f4045820f069997834e94e8275910b1f03e078a6020bd464cb2363"}, - {file = "grpcio-1.68.0-cp39-cp39-win32.whl", hash = "sha256:2af76ab7c427aaa26aa9187c3e3c42f38d3771f91a20f99657d992afada2294a"}, - {file = "grpcio-1.68.0-cp39-cp39-win_amd64.whl", hash = "sha256:e694b5928b7b33ca2d3b4d5f9bf8b5888906f181daff6b406f4938f3a997a490"}, - {file = "grpcio-1.68.0.tar.gz", hash = "sha256:7e7483d39b4a4fddb9906671e9ea21aaad4f031cdfc349fec76bdfa1e404543a"}, + {file = "grpcio-1.67.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:8b0341d66a57f8a3119b77ab32207072be60c9bf79760fa609c5609f2deb1f3f"}, + {file = "grpcio-1.67.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:f5a27dddefe0e2357d3e617b9079b4bfdc91341a91565111a21ed6ebbc51b22d"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:43112046864317498a33bdc4797ae6a268c36345a910de9b9c17159d8346602f"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9b929f13677b10f63124c1a410994a401cdd85214ad83ab67cc077fc7e480f0"}, + {file = "grpcio-1.67.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7d1797a8a3845437d327145959a2c0c47c05947c9eef5ff1a4c80e499dcc6fa"}, + {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0489063974d1452436139501bf6b180f63d4977223ee87488fe36858c5725292"}, + {file = "grpcio-1.67.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9fd042de4a82e3e7aca44008ee2fb5da01b3e5adb316348c21980f7f58adc311"}, + {file = "grpcio-1.67.1-cp310-cp310-win32.whl", hash = "sha256:638354e698fd0c6c76b04540a850bf1db27b4d2515a19fcd5cf645c48d3eb1ed"}, + {file = "grpcio-1.67.1-cp310-cp310-win_amd64.whl", hash = "sha256:608d87d1bdabf9e2868b12338cd38a79969eaf920c89d698ead08f48de9c0f9e"}, + {file = "grpcio-1.67.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:7818c0454027ae3384235a65210bbf5464bd715450e30a3d40385453a85a70cb"}, + {file = "grpcio-1.67.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ea33986b70f83844cd00814cee4451055cd8cab36f00ac64a31f5bb09b31919e"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c7a01337407dd89005527623a4a72c5c8e2894d22bead0895306b23c6695698f"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80b866f73224b0634f4312a4674c1be21b2b4afa73cb20953cbbb73a6b36c3cc"}, + {file = "grpcio-1.67.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fff78ba10d4250bfc07a01bd6254a6d87dc67f9627adece85c0b2ed754fa96"}, + {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8a23cbcc5bb11ea7dc6163078be36c065db68d915c24f5faa4f872c573bb400f"}, + {file = "grpcio-1.67.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1a65b503d008f066e994f34f456e0647e5ceb34cfcec5ad180b1b44020ad4970"}, + {file = "grpcio-1.67.1-cp311-cp311-win32.whl", hash = "sha256:e29ca27bec8e163dca0c98084040edec3bc49afd10f18b412f483cc68c712744"}, + {file = "grpcio-1.67.1-cp311-cp311-win_amd64.whl", hash = "sha256:786a5b18544622bfb1e25cc08402bd44ea83edfb04b93798d85dca4d1a0b5be5"}, + {file = "grpcio-1.67.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:267d1745894200e4c604958da5f856da6293f063327cb049a51fe67348e4f953"}, + {file = "grpcio-1.67.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:85f69fdc1d28ce7cff8de3f9c67db2b0ca9ba4449644488c1e0303c146135ddb"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f26b0b547eb8d00e195274cdfc63ce64c8fc2d3e2d00b12bf468ece41a0423a0"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4422581cdc628f77302270ff839a44f4c24fdc57887dc2a45b7e53d8fc2376af"}, + {file = "grpcio-1.67.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7616d2ded471231c701489190379e0c311ee0a6c756f3c03e6a62b95a7146e"}, + {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8a00efecde9d6fcc3ab00c13f816313c040a28450e5e25739c24f432fc6d3c75"}, + {file = "grpcio-1.67.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:699e964923b70f3101393710793289e42845791ea07565654ada0969522d0a38"}, + {file = "grpcio-1.67.1-cp312-cp312-win32.whl", hash = "sha256:4e7b904484a634a0fff132958dabdb10d63e0927398273917da3ee103e8d1f78"}, + {file = "grpcio-1.67.1-cp312-cp312-win_amd64.whl", hash = "sha256:5721e66a594a6c4204458004852719b38f3d5522082be9061d6510b455c90afc"}, + {file = "grpcio-1.67.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa0162e56fd10a5547fac8774c4899fc3e18c1aa4a4759d0ce2cd00d3696ea6b"}, + {file = "grpcio-1.67.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:beee96c8c0b1a75d556fe57b92b58b4347c77a65781ee2ac749d550f2a365dc1"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:a93deda571a1bf94ec1f6fcda2872dad3ae538700d94dc283c672a3b508ba3af"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e6f255980afef598a9e64a24efce87b625e3e3c80a45162d111a461a9f92955"}, + {file = "grpcio-1.67.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e838cad2176ebd5d4a8bb03955138d6589ce9e2ce5d51c3ada34396dbd2dba8"}, + {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a6703916c43b1d468d0756c8077b12017a9fcb6a1ef13faf49e67d20d7ebda62"}, + {file = "grpcio-1.67.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:917e8d8994eed1d86b907ba2a61b9f0aef27a2155bca6cbb322430fc7135b7bb"}, + {file = "grpcio-1.67.1-cp313-cp313-win32.whl", hash = "sha256:e279330bef1744040db8fc432becc8a727b84f456ab62b744d3fdb83f327e121"}, + {file = "grpcio-1.67.1-cp313-cp313-win_amd64.whl", hash = "sha256:fa0c739ad8b1996bd24823950e3cb5152ae91fca1c09cc791190bf1627ffefba"}, + {file = "grpcio-1.67.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:178f5db771c4f9a9facb2ab37a434c46cb9be1a75e820f187ee3d1e7805c4f65"}, + {file = "grpcio-1.67.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f3e49c738396e93b7ba9016e153eb09e0778e776df6090c1b8c91877cc1c426"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:24e8a26dbfc5274d7474c27759b54486b8de23c709d76695237515bc8b5baeab"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b6c16489326d79ead41689c4b84bc40d522c9a7617219f4ad94bc7f448c5085"}, + {file = "grpcio-1.67.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e6a4dcf5af7bbc36fd9f81c9f372e8ae580870a9e4b6eafe948cd334b81cf3"}, + {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:95b5f2b857856ed78d72da93cd7d09b6db8ef30102e5e7fe0961fe4d9f7d48e8"}, + {file = "grpcio-1.67.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b49359977c6ec9f5d0573ea4e0071ad278ef905aa74e420acc73fd28ce39e9ce"}, + {file = "grpcio-1.67.1-cp38-cp38-win32.whl", hash = "sha256:f5b76ff64aaac53fede0cc93abf57894ab2a7362986ba22243d06218b93efe46"}, + {file = "grpcio-1.67.1-cp38-cp38-win_amd64.whl", hash = "sha256:804c6457c3cd3ec04fe6006c739579b8d35c86ae3298ffca8de57b493524b771"}, + {file = "grpcio-1.67.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:a25bdea92b13ff4d7790962190bf6bf5c4639876e01c0f3dda70fc2769616335"}, + {file = "grpcio-1.67.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cdc491ae35a13535fd9196acb5afe1af37c8237df2e54427be3eecda3653127e"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:85f862069b86a305497e74d0dc43c02de3d1d184fc2c180993aa8aa86fbd19b8"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec74ef02010186185de82cc594058a3ccd8d86821842bbac9873fd4a2cf8be8d"}, + {file = "grpcio-1.67.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01f616a964e540638af5130469451cf580ba8c7329f45ca998ab66e0c7dcdb04"}, + {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:299b3d8c4f790c6bcca485f9963b4846dd92cf6f1b65d3697145d005c80f9fe8"}, + {file = "grpcio-1.67.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:60336bff760fbb47d7e86165408126f1dded184448e9a4c892189eb7c9d3f90f"}, + {file = "grpcio-1.67.1-cp39-cp39-win32.whl", hash = "sha256:5ed601c4c6008429e3d247ddb367fe8c7259c355757448d7c1ef7bd4a6739e8e"}, + {file = "grpcio-1.67.1-cp39-cp39-win_amd64.whl", hash = "sha256:5db70d32d6703b89912af16d6d45d78406374a8b8ef0d28140351dd0ec610e98"}, + {file = "grpcio-1.67.1.tar.gz", hash = "sha256:3dc2ed4cabea4dc14d5e708c2b426205956077cc5de419b4d4079315017e9732"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.68.0)"] +protobuf = ["grpcio-tools (>=1.67.1)"] [[package]] name = "h11" @@ -1517,13 +1497,13 @@ typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "t [[package]] name = "identify" -version = "2.6.2" +version = "2.6.3" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.2-py2.py3-none-any.whl", hash = "sha256:c097384259f49e372f4ea00a19719d95ae27dd5ff0fd77ad630aa891306b82f3"}, - {file = "identify-2.6.2.tar.gz", hash = "sha256:fab5c716c24d7a789775228823797296a2994b075fb6080ac83a102772a98cbd"}, + {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, + {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, ] [package.extras] @@ -2126,18 +2106,18 @@ langchain-core = ">=0.2.38,<0.3.0" [[package]] name = "langsmith" -version = "0.1.143" +version = "0.1.146" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." optional = false python-versions = "<4.0,>=3.8.1" files = [ - {file = "langsmith-0.1.143-py3-none-any.whl", hash = "sha256:ba0d827269e9b03a90fababe41fa3e4e3f833300b95add10184f7e67167dde6f"}, - {file = "langsmith-0.1.143.tar.gz", hash = "sha256:4c5159e5cd84b3f8499433009e72d2076dd2daf6c044ac8a3611b30d0d0161c5"}, + {file = "langsmith-0.1.146-py3-none-any.whl", hash = "sha256:9d062222f1a32c9b047dab0149b24958f988989cd8d4a5f9139ff959a51e59d8"}, + {file = "langsmith-0.1.146.tar.gz", hash = "sha256:ead8b0b9d5b6cd3ac42937ec48bdf09d4afe7ca1bba22dc05eb65591a18106f8"}, ] [package.dependencies] httpx = ">=0.23.0,<1" -orjson = ">=3.9.14,<4.0.0" +orjson = {version = ">=3.9.14,<4.0.0", markers = "platform_python_implementation != \"PyPy\""} pydantic = [ {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""}, {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""}, @@ -2212,111 +2192,157 @@ files = [ [[package]] name = "lxml" -version = "4.9.4" +version = "5.3.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" -files = [ - {file = "lxml-4.9.4-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e214025e23db238805a600f1f37bf9f9a15413c7bf5f9d6ae194f84980c78722"}, - {file = "lxml-4.9.4-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ec53a09aee61d45e7dbe7e91252ff0491b6b5fee3d85b2d45b173d8ab453efc1"}, - {file = "lxml-4.9.4-cp27-cp27m-win32.whl", hash = "sha256:7d1d6c9e74c70ddf524e3c09d9dc0522aba9370708c2cb58680ea40174800013"}, - {file = "lxml-4.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:cb53669442895763e61df5c995f0e8361b61662f26c1b04ee82899c2789c8f69"}, - {file = "lxml-4.9.4-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:647bfe88b1997d7ae8d45dabc7c868d8cb0c8412a6e730a7651050b8c7289cf2"}, - {file = "lxml-4.9.4-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4d973729ce04784906a19108054e1fd476bc85279a403ea1a72fdb051c76fa48"}, - {file = "lxml-4.9.4-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:056a17eaaf3da87a05523472ae84246f87ac2f29a53306466c22e60282e54ff8"}, - {file = "lxml-4.9.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:aaa5c173a26960fe67daa69aa93d6d6a1cd714a6eb13802d4e4bd1d24a530644"}, - {file = "lxml-4.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:647459b23594f370c1c01768edaa0ba0959afc39caeeb793b43158bb9bb6a663"}, - {file = "lxml-4.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:bdd9abccd0927673cffe601d2c6cdad1c9321bf3437a2f507d6b037ef91ea307"}, - {file = "lxml-4.9.4-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:00e91573183ad273e242db5585b52670eddf92bacad095ce25c1e682da14ed91"}, - {file = "lxml-4.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a602ed9bd2c7d85bd58592c28e101bd9ff9c718fbde06545a70945ffd5d11868"}, - {file = "lxml-4.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:de362ac8bc962408ad8fae28f3967ce1a262b5d63ab8cefb42662566737f1dc7"}, - {file = "lxml-4.9.4-cp310-cp310-win32.whl", hash = "sha256:33714fcf5af4ff7e70a49731a7cc8fd9ce910b9ac194f66eaa18c3cc0a4c02be"}, - {file = "lxml-4.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:d3caa09e613ece43ac292fbed513a4bce170681a447d25ffcbc1b647d45a39c5"}, - {file = "lxml-4.9.4-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:359a8b09d712df27849e0bcb62c6a3404e780b274b0b7e4c39a88826d1926c28"}, - {file = "lxml-4.9.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:43498ea734ccdfb92e1886dfedaebeb81178a241d39a79d5351ba2b671bff2b2"}, - {file = "lxml-4.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4855161013dfb2b762e02b3f4d4a21cc7c6aec13c69e3bffbf5022b3e708dd97"}, - {file = "lxml-4.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c71b5b860c5215fdbaa56f715bc218e45a98477f816b46cfde4a84d25b13274e"}, - {file = "lxml-4.9.4-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9a2b5915c333e4364367140443b59f09feae42184459b913f0f41b9fed55794a"}, - {file = "lxml-4.9.4-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d82411dbf4d3127b6cde7da0f9373e37ad3a43e89ef374965465928f01c2b979"}, - {file = "lxml-4.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:273473d34462ae6e97c0f4e517bd1bf9588aa67a1d47d93f760a1282640e24ac"}, - {file = "lxml-4.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:389d2b2e543b27962990ab529ac6720c3dded588cc6d0f6557eec153305a3622"}, - {file = "lxml-4.9.4-cp311-cp311-win32.whl", hash = "sha256:8aecb5a7f6f7f8fe9cac0bcadd39efaca8bbf8d1bf242e9f175cbe4c925116c3"}, - {file = "lxml-4.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:c7721a3ef41591341388bb2265395ce522aba52f969d33dacd822da8f018aff8"}, - {file = "lxml-4.9.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:dbcb2dc07308453db428a95a4d03259bd8caea97d7f0776842299f2d00c72fc8"}, - {file = "lxml-4.9.4-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:01bf1df1db327e748dcb152d17389cf6d0a8c5d533ef9bab781e9d5037619229"}, - {file = "lxml-4.9.4-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e8f9f93a23634cfafbad6e46ad7d09e0f4a25a2400e4a64b1b7b7c0fbaa06d9d"}, - {file = "lxml-4.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3f3f00a9061605725df1816f5713d10cd94636347ed651abdbc75828df302b20"}, - {file = "lxml-4.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:953dd5481bd6252bd480d6ec431f61d7d87fdcbbb71b0d2bdcfc6ae00bb6fb10"}, - {file = "lxml-4.9.4-cp312-cp312-win32.whl", hash = "sha256:266f655d1baff9c47b52f529b5f6bec33f66042f65f7c56adde3fcf2ed62ae8b"}, - {file = "lxml-4.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:f1faee2a831fe249e1bae9cbc68d3cd8a30f7e37851deee4d7962b17c410dd56"}, - {file = "lxml-4.9.4-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:23d891e5bdc12e2e506e7d225d6aa929e0a0368c9916c1fddefab88166e98b20"}, - {file = "lxml-4.9.4-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e96a1788f24d03e8d61679f9881a883ecdf9c445a38f9ae3f3f193ab6c591c66"}, - {file = "lxml-4.9.4-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:5557461f83bb7cc718bc9ee1f7156d50e31747e5b38d79cf40f79ab1447afd2d"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:fdb325b7fba1e2c40b9b1db407f85642e32404131c08480dd652110fc908561b"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d74d4a3c4b8f7a1f676cedf8e84bcc57705a6d7925e6daef7a1e54ae543a197"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ac7674d1638df129d9cb4503d20ffc3922bd463c865ef3cb412f2c926108e9a4"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:ddd92e18b783aeb86ad2132d84a4b795fc5ec612e3545c1b687e7747e66e2b53"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bd9ac6e44f2db368ef8986f3989a4cad3de4cd55dbdda536e253000c801bcc7"}, - {file = "lxml-4.9.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bc354b1393dce46026ab13075f77b30e40b61b1a53e852e99d3cc5dd1af4bc85"}, - {file = "lxml-4.9.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:f836f39678cb47c9541f04d8ed4545719dc31ad850bf1832d6b4171e30d65d23"}, - {file = "lxml-4.9.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:9c131447768ed7bc05a02553d939e7f0e807e533441901dd504e217b76307745"}, - {file = "lxml-4.9.4-cp36-cp36m-win32.whl", hash = "sha256:bafa65e3acae612a7799ada439bd202403414ebe23f52e5b17f6ffc2eb98c2be"}, - {file = "lxml-4.9.4-cp36-cp36m-win_amd64.whl", hash = "sha256:6197c3f3c0b960ad033b9b7d611db11285bb461fc6b802c1dd50d04ad715c225"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:7b378847a09d6bd46047f5f3599cdc64fcb4cc5a5a2dd0a2af610361fbe77b16"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:1343df4e2e6e51182aad12162b23b0a4b3fd77f17527a78c53f0f23573663545"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:6dbdacf5752fbd78ccdb434698230c4f0f95df7dd956d5f205b5ed6911a1367c"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:506becdf2ecaebaf7f7995f776394fcc8bd8a78022772de66677c84fb02dd33d"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ca8e44b5ba3edb682ea4e6185b49661fc22b230cf811b9c13963c9f982d1d964"}, - {file = "lxml-4.9.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9d9d5726474cbbef279fd709008f91a49c4f758bec9c062dfbba88eab00e3ff9"}, - {file = "lxml-4.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bbdd69e20fe2943b51e2841fc1e6a3c1de460d630f65bde12452d8c97209464d"}, - {file = "lxml-4.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8671622256a0859f5089cbe0ce4693c2af407bc053dcc99aadff7f5310b4aa02"}, - {file = "lxml-4.9.4-cp37-cp37m-win32.whl", hash = "sha256:dd4fda67f5faaef4f9ee5383435048ee3e11ad996901225ad7615bc92245bc8e"}, - {file = "lxml-4.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6bee9c2e501d835f91460b2c904bc359f8433e96799f5c2ff20feebd9bb1e590"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:1f10f250430a4caf84115b1e0f23f3615566ca2369d1962f82bef40dd99cd81a"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:3b505f2bbff50d261176e67be24e8909e54b5d9d08b12d4946344066d66b3e43"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:1449f9451cd53e0fd0a7ec2ff5ede4686add13ac7a7bfa6988ff6d75cff3ebe2"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:4ece9cca4cd1c8ba889bfa67eae7f21d0d1a2e715b4d5045395113361e8c533d"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59bb5979f9941c61e907ee571732219fa4774d5a18f3fa5ff2df963f5dfaa6bc"}, - {file = "lxml-4.9.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b1980dbcaad634fe78e710c8587383e6e3f61dbe146bcbfd13a9c8ab2d7b1192"}, - {file = "lxml-4.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9ae6c3363261021144121427b1552b29e7b59de9d6a75bf51e03bc072efb3c37"}, - {file = "lxml-4.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bcee502c649fa6351b44bb014b98c09cb00982a475a1912a9881ca28ab4f9cd9"}, - {file = "lxml-4.9.4-cp38-cp38-win32.whl", hash = "sha256:a8edae5253efa75c2fc79a90068fe540b197d1c7ab5803b800fccfe240eed33c"}, - {file = "lxml-4.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:701847a7aaefef121c5c0d855b2affa5f9bd45196ef00266724a80e439220e46"}, - {file = "lxml-4.9.4-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:f610d980e3fccf4394ab3806de6065682982f3d27c12d4ce3ee46a8183d64a6a"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:aa9b5abd07f71b081a33115d9758ef6077924082055005808f68feccb27616bd"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:365005e8b0718ea6d64b374423e870648ab47c3a905356ab6e5a5ff03962b9a9"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:16b9ec51cc2feab009e800f2c6327338d6ee4e752c76e95a35c4465e80390ccd"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:a905affe76f1802edcac554e3ccf68188bea16546071d7583fb1b693f9cf756b"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd814847901df6e8de13ce69b84c31fc9b3fb591224d6762d0b256d510cbf382"}, - {file = "lxml-4.9.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:91bbf398ac8bb7d65a5a52127407c05f75a18d7015a270fdd94bbcb04e65d573"}, - {file = "lxml-4.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f99768232f036b4776ce419d3244a04fe83784bce871b16d2c2e984c7fcea847"}, - {file = "lxml-4.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bb5bd6212eb0edfd1e8f254585290ea1dadc3687dd8fd5e2fd9a87c31915cdab"}, - {file = "lxml-4.9.4-cp39-cp39-win32.whl", hash = "sha256:88f7c383071981c74ec1998ba9b437659e4fd02a3c4a4d3efc16774eb108d0ec"}, - {file = "lxml-4.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:936e8880cc00f839aa4173f94466a8406a96ddce814651075f95837316369899"}, - {file = "lxml-4.9.4-pp310-pypy310_pp73-macosx_11_0_x86_64.whl", hash = "sha256:f6c35b2f87c004270fa2e703b872fcc984d714d430b305145c39d53074e1ffe0"}, - {file = "lxml-4.9.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:606d445feeb0856c2b424405236a01c71af7c97e5fe42fbc778634faef2b47e4"}, - {file = "lxml-4.9.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1bdcbebd4e13446a14de4dd1825f1e778e099f17f79718b4aeaf2403624b0f7"}, - {file = "lxml-4.9.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:0a08c89b23117049ba171bf51d2f9c5f3abf507d65d016d6e0fa2f37e18c0fc5"}, - {file = "lxml-4.9.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:232fd30903d3123be4c435fb5159938c6225ee8607b635a4d3fca847003134ba"}, - {file = "lxml-4.9.4-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:231142459d32779b209aa4b4d460b175cadd604fed856f25c1571a9d78114771"}, - {file = "lxml-4.9.4-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:520486f27f1d4ce9654154b4494cf9307b495527f3a2908ad4cb48e4f7ed7ef7"}, - {file = "lxml-4.9.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:562778586949be7e0d7435fcb24aca4810913771f845d99145a6cee64d5b67ca"}, - {file = "lxml-4.9.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a9e7c6d89c77bb2770c9491d988f26a4b161d05c8ca58f63fb1f1b6b9a74be45"}, - {file = "lxml-4.9.4-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:786d6b57026e7e04d184313c1359ac3d68002c33e4b1042ca58c362f1d09ff58"}, - {file = "lxml-4.9.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95ae6c5a196e2f239150aa4a479967351df7f44800c93e5a975ec726fef005e2"}, - {file = "lxml-4.9.4-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:9b556596c49fa1232b0fff4b0e69b9d4083a502e60e404b44341e2f8fb7187f5"}, - {file = "lxml-4.9.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:cc02c06e9e320869d7d1bd323df6dd4281e78ac2e7f8526835d3d48c69060683"}, - {file = "lxml-4.9.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:857d6565f9aa3464764c2cb6a2e3c2e75e1970e877c188f4aeae45954a314e0c"}, - {file = "lxml-4.9.4-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c42ae7e010d7d6bc51875d768110c10e8a59494855c3d4c348b068f5fb81fdcd"}, - {file = "lxml-4.9.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f10250bb190fb0742e3e1958dd5c100524c2cc5096c67c8da51233f7448dc137"}, - {file = "lxml-4.9.4.tar.gz", hash = "sha256:b1541e50b78e15fa06a2670157a1962ef06591d4c998b998047fff5e3236880e"}, +python-versions = ">=3.6" +files = [ + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, ] [package.extras] cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (==0.29.37)"] +source = ["Cython (>=3.0.11)"] [[package]] name = "markdown" @@ -2446,25 +2472,6 @@ files = [ {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] -[[package]] -name = "marshmallow" -version = "3.23.1" -description = "A lightweight library for converting complex datatypes to and from native Python datatypes." -optional = false -python-versions = ">=3.9" -files = [ - {file = "marshmallow-3.23.1-py3-none-any.whl", hash = "sha256:fece2eb2c941180ea1b7fcbd4a83c51bfdd50093fdd3ad2585ee5e1df2508491"}, - {file = "marshmallow-3.23.1.tar.gz", hash = "sha256:3a8dfda6edd8dcdbf216c0ede1d1e78d230a6dc9c5a088f58c4083b974a0d468"}, -] - -[package.dependencies] -packaging = ">=17.0" - -[package.extras] -dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] -docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.14)", "sphinx (==8.1.3)", "sphinx-issues (==5.0.0)", "sphinx-version-warning (==1.1.2)"] -tests = ["pytest", "simplejson"] - [[package]] name = "matplotlib-inline" version = "0.1.7" @@ -2642,13 +2649,13 @@ pygments = ">2.12.0" [[package]] name = "mkdocs-material" -version = "9.5.45" +version = "9.5.46" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.45-py3-none-any.whl", hash = "sha256:a9be237cfd0be14be75f40f1726d83aa3a81ce44808dc3594d47a7a592f44547"}, - {file = "mkdocs_material-9.5.45.tar.gz", hash = "sha256:286489cf0beca4a129d91d59d6417419c63bceed1ce5cd0ec1fc7e1ebffb8189"}, + {file = "mkdocs_material-9.5.46-py3-none-any.whl", hash = "sha256:98f0a2039c62e551a68aad0791a8d41324ff90c03a6e6cea381a384b84908b83"}, + {file = "mkdocs_material-9.5.46.tar.gz", hash = "sha256:ae2043f4238e572f9a40e0b577f50400d6fc31e2fef8ea141800aebf3bd273d7"}, ] [package.dependencies] @@ -3057,30 +3064,32 @@ files = [ [[package]] name = "ninja" -version = "1.11.1.1" +version = "1.11.1.2" description = "Ninja is a small build system with a focus on speed" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "ninja-1.11.1.1-py2.py3-none-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:376889c76d87b95b5719fdd61dd7db193aa7fd4432e5d52d2e44e4c497bdbbee"}, - {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:ecf80cf5afd09f14dcceff28cb3f11dc90fb97c999c89307aea435889cb66877"}, - {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:84502ec98f02a037a169c4b0d5d86075eaf6afc55e1879003d6cab51ced2ea4b"}, - {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:73b93c14046447c7c5cc892433d4fae65d6364bec6685411cb97a8bcf815f93a"}, - {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:18302d96a5467ea98b68e1cae1ae4b4fb2b2a56a82b955193c637557c7273dbd"}, - {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:aad34a70ef15b12519946c5633344bc775a7656d789d9ed5fdb0d456383716ef"}, - {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d491fc8d89cdcb416107c349ad1e3a735d4c4af5e1cb8f5f727baca6350fdaea"}, - {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_i686.whl", hash = "sha256:7563ce1d9fe6ed5af0b8dd9ab4a214bf4ff1f2f6fd6dc29f480981f0f8b8b249"}, - {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:9df724344202b83018abb45cb1efc22efd337a1496514e7e6b3b59655be85205"}, - {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_s390x.whl", hash = "sha256:3e0f9be5bb20d74d58c66cc1c414c3e6aeb45c35b0d0e41e8d739c2c0d57784f"}, - {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:76482ba746a2618eecf89d5253c0d1e4f1da1270d41e9f54dfbd91831b0f6885"}, - {file = "ninja-1.11.1.1-py2.py3-none-win32.whl", hash = "sha256:fa2ba9d74acfdfbfbcf06fad1b8282de8a7a8c481d9dee45c859a8c93fcc1082"}, - {file = "ninja-1.11.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:95da904130bfa02ea74ff9c0116b4ad266174fafb1c707aa50212bc7859aebf1"}, - {file = "ninja-1.11.1.1-py2.py3-none-win_arm64.whl", hash = "sha256:185e0641bde601e53841525c4196278e9aaf4463758da6dd1e752c0a0f54136a"}, - {file = "ninja-1.11.1.1.tar.gz", hash = "sha256:9d793b08dd857e38d0b6ffe9e6b7145d7c485a42dcfea04905ca0cdb6017cc3c"}, + {file = "ninja-1.11.1.2-py3-none-macosx_10_9_universal2.whl", hash = "sha256:1cfbb845095ea09da8c089375a8f999e75f4817d01506297c66181b533175647"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ab4068ff7ff1f895485ad604116165b05d6810c802170a7f22c09dd678d5587d"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:33d258809c8eda81f9d80e18a081a6eef3215e5fd1ba8902400d786641994e89"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed25892c16e49e66383a8db6a67a9f33b41230fc485426094d7da51e2255ec2b"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:232767144401847db62e8392047866698bb3678158a1ae4400a97111110e90f2"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9200247cf4c1643a67d079836b8dd31a362e34e618b50b5e3a5c0d0171efc442"}, + {file = "ninja-1.11.1.2-py3-none-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0c9c36f6e6f8946c7271b0ed14d98fc3ea467a0c0954fb73f5f656c42667d943"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:3e815e4147832b17ec38417efcb31df51671ae273f083409304c7cc32a14dd1a"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:ecf3df324b56fdfb0872990a71e706efdae286e010310816c72b6bf24431711b"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:cb6b476eb4e84c0efcfd3ab04f660dedce8adb854b56b043639312f3af176df6"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:508fb93395a5c82a4d99d30fce0cbaf5cb2bd33e5c1dc9faaa080e199802dbc9"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:52af7f45750c5c288d566fd0c927ed9bb0d8f2e50803709f582a42bcc4ec167b"}, + {file = "ninja-1.11.1.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:99fc4b87299242e10d7edd1c7737fdfb1269019e32f9f4267630887f6183a49e"}, + {file = "ninja-1.11.1.2-py3-none-win32.whl", hash = "sha256:949e23cb2e79a33ea37d23a07d26846d2e75464e8e6940f8751fe964bc141dfa"}, + {file = "ninja-1.11.1.2-py3-none-win_amd64.whl", hash = "sha256:0bca4179119426a3c3c9d5661c3b244d68781064e50907a1e066bc55edc18e06"}, + {file = "ninja-1.11.1.2-py3-none-win_arm64.whl", hash = "sha256:ee7b1924c28e6cab5b866f7b229f07777d25d8cfccbbedf3da5ffb4f72f57877"}, + {file = "ninja-1.11.1.2.tar.gz", hash = "sha256:4fbd07b2b4232543726abafdd350453a2fabef4527664ca0e491c578aee5f857"}, ] [package.extras] -test = ["codecov (>=2.0.5)", "coverage (>=4.2)", "flake8 (>=3.0.4)", "pytest (>=4.5.0)", "pytest-cov (>=2.7.1)", "pytest-runner (>=5.1)", "pytest-virtualenv (>=1.7.0)", "virtualenv (>=15.0.3)"] +test = ["coverage (>=4.2)", "importlib_metadata (>=2.0)", "pytest (>=6.0)", "pytest-cov (>=3)"] [[package]] name = "nodeenv" @@ -3466,14 +3475,14 @@ files = [ [[package]] name = "nvidia-nvjitlink-cu12" -version = "12.6.77" +version = "12.6.85" description = "Nvidia JIT LTO Library" optional = false python-versions = ">=3" files = [ - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-manylinux2014_aarch64.whl", hash = "sha256:3bf10d85bb1801e9c894c6e197e44dd137d2a0a9e43f8450e9ad13f2df0dd52d"}, - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-manylinux2014_x86_64.whl", hash = "sha256:9ae346d16203ae4ea513be416495167a0101d33d2d14935aa9c1829a3fb45142"}, - {file = "nvidia_nvjitlink_cu12-12.6.77-py3-none-win_amd64.whl", hash = "sha256:410718cd44962bed862a31dd0318620f6f9a8b28a6291967bcfcb446a6516771"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:eedc36df9e88b682efe4309aa16b5b4e78c2407eac59e8c10a6a47535164369a"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cf4eaa7d4b6b543ffd69d6abfb11efdeb2db48270d94dfd3a452c24150829e41"}, + {file = "nvidia_nvjitlink_cu12-12.6.85-py3-none-win_amd64.whl", hash = "sha256:e61120e52ed675747825cdd16febc6a0730537451d867ee58bee3853b1b13d1c"}, ] [[package]] @@ -3557,69 +3566,86 @@ et-xmlfile = "*" [[package]] name = "orjson" -version = "3.10.11" +version = "3.10.12" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, - {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, - {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, - {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, - {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, - {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, - {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, - {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, - {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, - {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, - {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, - {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, - {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, - {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, - {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, - {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, - {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, - {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, - {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, + {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, + {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, + {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, + {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, + {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, + {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, + {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, + {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, + {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, + {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, + {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, + {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, + {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, + {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, + {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, + {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, + {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, + {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, + {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, ] [[package]] @@ -4503,21 +4529,21 @@ extra = ["pygments (>=2.12)"] [[package]] name = "pymilvus" -version = "2.4.9" +version = "2.5.0" description = "Python Sdk for Milvus" optional = false python-versions = ">=3.8" files = [ - {file = "pymilvus-2.4.9-py3-none-any.whl", hash = "sha256:45313607d2c164064bdc44e0f933cb6d6afa92e9efcc7f357c5240c57db58fbe"}, - {file = "pymilvus-2.4.9.tar.gz", hash = "sha256:0937663700007c23a84cfc0656160b301f6ff9247aaec4c96d599a6b43572136"}, + {file = "pymilvus-2.5.0-py3-none-any.whl", hash = "sha256:a0e8653d8fe78019abfda79b3404ef7423f312501e8cbd7dc728051ce8732652"}, + {file = "pymilvus-2.5.0.tar.gz", hash = "sha256:4da14a3bd957a4921166f9355fd1f1ac5c5e4e80b46f12f64d9c9a6dcb8cb395"}, ] [package.dependencies] -environs = "<=9.5.0" -grpcio = ">=1.49.1" -milvus-lite = {version = ">=2.4.0,<2.5.0", markers = "sys_platform != \"win32\""} +grpcio = ">=1.49.1,<=1.67.1" +milvus-lite = {version = ">=2.4.0", markers = "sys_platform != \"win32\""} pandas = ">=1.2.4" protobuf = ">=3.20.0" +python-dotenv = ">=1.0.1,<2.0.0" setuptools = ">69" ujson = ">=2.0.0" @@ -5715,11 +5741,6 @@ files = [ {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f60021ec1574e56632be2a36b946f8143bf4e5e6af4a06d85281adc22938e0dd"}, {file = "scikit_learn-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:394397841449853c2290a32050382edaec3da89e35b3e03d6cc966aebc6a8ae6"}, {file = "scikit_learn-1.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:57cc1786cfd6bd118220a92ede80270132aa353647684efa385a74244a41e3b1"}, - {file = "scikit_learn-1.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9a702e2de732bbb20d3bad29ebd77fc05a6b427dc49964300340e4c9328b3f5"}, - {file = "scikit_learn-1.5.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:b0768ad641981f5d3a198430a1d31c3e044ed2e8a6f22166b4d546a5116d7908"}, - {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:178ddd0a5cb0044464fc1bfc4cca5b1833bfc7bb022d70b05db8530da4bb3dd3"}, - {file = "scikit_learn-1.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7284ade780084d94505632241bf78c44ab3b6f1e8ccab3d2af58e0e950f9c12"}, - {file = "scikit_learn-1.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:b7b0f9a0b1040830d38c39b91b3a44e1b643f4b36e36567b80b7c6bd2202a27f"}, {file = "scikit_learn-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:757c7d514ddb00ae249832fe87100d9c73c6ea91423802872d9e74970a0e40b9"}, {file = "scikit_learn-1.5.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:52788f48b5d8bca5c0736c175fa6bdaab2ef00a8f536cda698db61bd89c551c1"}, {file = "scikit_learn-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:643964678f4b5fbdc95cbf8aec638acc7aa70f5f79ee2cdad1eec3df4ba6ead8"}, @@ -5840,23 +5861,23 @@ train = ["accelerate (>=0.20.3)", "datasets"] [[package]] name = "setuptools" -version = "75.5.0" +version = "75.6.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.9" files = [ - {file = "setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829"}, - {file = "setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef"}, + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, ] [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] -core = ["importlib-metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] [[package]] name = "shapely" @@ -6152,123 +6173,26 @@ files = [ [[package]] name = "tokenizers" -version = "0.20.3" +version = "0.20.4" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "tokenizers-0.20.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:31ccab28dbb1a9fe539787210b0026e22debeab1662970f61c2d921f7557f7e4"}, - {file = "tokenizers-0.20.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6361191f762bda98c773da418cf511cbaa0cb8d0a1196f16f8c0119bde68ff8"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f128d5da1202b78fa0a10d8d938610472487da01b57098d48f7e944384362514"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:79c4121a2e9433ad7ef0769b9ca1f7dd7fa4c0cd501763d0a030afcbc6384481"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7850fde24197fe5cd6556e2fdba53a6d3bae67c531ea33a3d7c420b90904141"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b357970c095dc134978a68c67d845a1e3803ab7c4fbb39195bde914e7e13cf8b"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a333d878c4970b72d6c07848b90c05f6b045cf9273fc2bc04a27211721ad6118"}, - {file = "tokenizers-0.20.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd9fee817f655a8f50049f685e224828abfadd436b8ff67979fc1d054b435f1"}, - {file = "tokenizers-0.20.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e7816808b402129393a435ea2a509679b41246175d6e5e9f25b8692bfaa272b"}, - {file = "tokenizers-0.20.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba96367db9d8a730d3a1d5996b4b7babb846c3994b8ef14008cd8660f55db59d"}, - {file = "tokenizers-0.20.3-cp310-none-win32.whl", hash = "sha256:ee31ba9d7df6a98619426283e80c6359f167e2e9882d9ce1b0254937dbd32f3f"}, - {file = "tokenizers-0.20.3-cp310-none-win_amd64.whl", hash = "sha256:a845c08fdad554fe0871d1255df85772f91236e5fd6b9287ef8b64f5807dbd0c"}, - {file = "tokenizers-0.20.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:585b51e06ca1f4839ce7759941e66766d7b060dccfdc57c4ca1e5b9a33013a90"}, - {file = "tokenizers-0.20.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61cbf11954f3b481d08723ebd048ba4b11e582986f9be74d2c3bdd9293a4538d"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef820880d5e4e8484e2fa54ff8d297bb32519eaa7815694dc835ace9130a3eea"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:67ef4dcb8841a4988cd00dd288fb95dfc8e22ed021f01f37348fd51c2b055ba9"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff1ef8bd47a02b0dc191688ccb4da53600df5d4c9a05a4b68e1e3de4823e78eb"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:444d188186eab3148baf0615b522461b41b1f0cd58cd57b862ec94b6ac9780f1"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37c04c032c1442740b2c2d925f1857885c07619224a533123ac7ea71ca5713da"}, - {file = "tokenizers-0.20.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:453c7769d22231960ee0e883d1005c93c68015025a5e4ae56275406d94a3c907"}, - {file = "tokenizers-0.20.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4bb31f7b2847e439766aaa9cc7bccf7ac7088052deccdb2275c952d96f691c6a"}, - {file = "tokenizers-0.20.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:843729bf0f991b29655a069a2ff58a4c24375a553c70955e15e37a90dd4e045c"}, - {file = "tokenizers-0.20.3-cp311-none-win32.whl", hash = "sha256:efcce3a927b1e20ca694ba13f7a68c59b0bd859ef71e441db68ee42cf20c2442"}, - {file = "tokenizers-0.20.3-cp311-none-win_amd64.whl", hash = "sha256:88301aa0801f225725b6df5dea3d77c80365ff2362ca7e252583f2b4809c4cc0"}, - {file = "tokenizers-0.20.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:49d12a32e190fad0e79e5bdb788d05da2f20d8e006b13a70859ac47fecf6ab2f"}, - {file = "tokenizers-0.20.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:282848cacfb9c06d5e51489f38ec5aa0b3cd1e247a023061945f71f41d949d73"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abe4e08c7d0cd6154c795deb5bf81d2122f36daf075e0c12a8b050d824ef0a64"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca94fc1b73b3883c98f0c88c77700b13d55b49f1071dfd57df2b06f3ff7afd64"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef279c7e239f95c8bdd6ff319d9870f30f0d24915b04895f55b1adcf96d6c60d"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16384073973f6ccbde9852157a4fdfe632bb65208139c9d0c0bd0176a71fd67f"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:312d522caeb8a1a42ebdec87118d99b22667782b67898a76c963c058a7e41d4f"}, - {file = "tokenizers-0.20.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2b7cb962564785a83dafbba0144ecb7f579f1d57d8c406cdaa7f32fe32f18ad"}, - {file = "tokenizers-0.20.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:124c5882ebb88dadae1fc788a582299fcd3a8bd84fc3e260b9918cf28b8751f5"}, - {file = "tokenizers-0.20.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2b6e54e71f84c4202111a489879005cb14b92616a87417f6c102c833af961ea2"}, - {file = "tokenizers-0.20.3-cp312-none-win32.whl", hash = "sha256:83d9bfbe9af86f2d9df4833c22e94d94750f1d0cd9bfb22a7bb90a86f61cdb1c"}, - {file = "tokenizers-0.20.3-cp312-none-win_amd64.whl", hash = "sha256:44def74cee574d609a36e17c8914311d1b5dbcfe37c55fd29369d42591b91cf2"}, - {file = "tokenizers-0.20.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0b630e0b536ef0e3c8b42c685c1bc93bd19e98c0f1543db52911f8ede42cf84"}, - {file = "tokenizers-0.20.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a02d160d2b19bcbfdf28bd9a4bf11be4cb97d0499c000d95d4c4b1a4312740b6"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e3d80d89b068bc30034034b5319218c7c0a91b00af19679833f55f3becb6945"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:174a54910bed1b089226512b4458ea60d6d6fd93060254734d3bc3540953c51c"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:098b8a632b8656aa5802c46689462c5c48f02510f24029d71c208ec2c822e771"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78c8c143e3ae41e718588281eb3e212c2b31623c9d6d40410ec464d7d6221fb5"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b26b0aadb18cd8701077362ba359a06683662d5cafe3e8e8aba10eb05c037f1"}, - {file = "tokenizers-0.20.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07d7851a72717321022f3774e84aa9d595a041d643fafa2e87fbc9b18711dac0"}, - {file = "tokenizers-0.20.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bd44e48a430ada902c6266a8245f5036c4fe744fcb51f699999fbe82aa438797"}, - {file = "tokenizers-0.20.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a4c186bb006ccbe1f5cc4e0380d1ce7806f5955c244074fd96abc55e27b77f01"}, - {file = "tokenizers-0.20.3-cp313-none-win32.whl", hash = "sha256:6e19e0f1d854d6ab7ea0c743d06e764d1d9a546932be0a67f33087645f00fe13"}, - {file = "tokenizers-0.20.3-cp313-none-win_amd64.whl", hash = "sha256:d50ede425c7e60966a9680d41b58b3a0950afa1bb570488e2972fa61662c4273"}, - {file = "tokenizers-0.20.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:9adda1ff5fb9dcdf899ceca672a4e2ce9e797adb512a6467305ca3d8bfcfbdd0"}, - {file = "tokenizers-0.20.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:6dde2cae6004ba7a3badff4a11911cae03ebf23e97eebfc0e71fef2530e5074f"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4a7fd678b35614fca708579eb95b7587a5e8a6d328171bd2488fd9f27d82be4"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b80e3c7283a01a356bd2210f53d1a4a5d32b269c2024389ed0173137708d50e"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8cc0e8176b762973758a77f0d9c4467d310e33165fb74173418ca3734944da4"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5634b2e2f5f3d2b4439d2d74066e22eb4b1f04f3fea05cb2a3c12d89b5a3bcd"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b4ba635165bc1ea46f2da8e5d80b5f70f6ec42161e38d96dbef33bb39df73964"}, - {file = "tokenizers-0.20.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e4c7c64172e7789bd8b07aa3087ea87c4c4de7e90937a2aa036b5d92332536"}, - {file = "tokenizers-0.20.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1f74909ef7675c26d4095a817ec3393d67f3158ca4836c233212e5613ef640c4"}, - {file = "tokenizers-0.20.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0e9b81321a1e05b16487d312b4264984513f8b4a7556229cafac6e88c2036b09"}, - {file = "tokenizers-0.20.3-cp37-none-win32.whl", hash = "sha256:ab48184cd58b4a03022a2ec75b54c9f600ffea9a733612c02325ed636f353729"}, - {file = "tokenizers-0.20.3-cp37-none-win_amd64.whl", hash = "sha256:60ac483cebee1c12c71878523e768df02fa17e4c54412966cb3ac862c91b36c1"}, - {file = "tokenizers-0.20.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3229ef103c89583d10b9378afa5d601b91e6337530a0988e17ca8d635329a996"}, - {file = "tokenizers-0.20.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ac52cc24bad3de865c7e65b1c4e7b70d00938a8ae09a92a453b8f676e714ad5"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04627b7b502fa6a2a005e1bd446fa4247d89abcb1afaa1b81eb90e21aba9a60f"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c27ceb887f0e81a3c377eb4605dca7a95a81262761c0fba308d627b2abb98f2b"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65ab780194da4e1fcf5670523a2f377c4838ebf5249efe41fa1eddd2a84fb49d"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98d343134f47159e81f7f242264b0eb222e6b802f37173c8d7d7b64d5c9d1388"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2475bb004ab2009d29aff13b5047bfdb3d4b474f0aa9d4faa13a7f34dbbbb43"}, - {file = "tokenizers-0.20.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b6583a65c01db1197c1eb36857ceba8ec329d53afadd268b42a6b04f4965724"}, - {file = "tokenizers-0.20.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d00ba208358c037eeab7bfc00a905adc67b2d31b68ab40ed09d75881e114ea"}, - {file = "tokenizers-0.20.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0fc7a39e5bedc817bda395a798dfe2d9c5f7c71153c90d381b5135a0328d9520"}, - {file = "tokenizers-0.20.3-cp38-none-win32.whl", hash = "sha256:84d40ee0f8550d64d3ea92dd7d24a8557a9172165bdb986c9fb2503b4fe4e3b6"}, - {file = "tokenizers-0.20.3-cp38-none-win_amd64.whl", hash = "sha256:205a45246ed7f1718cf3785cff88450ba603352412aaf220ace026384aa3f1c0"}, - {file = "tokenizers-0.20.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:93e37f0269a11dc3b1a953f1fca9707f0929ebf8b4063c591c71a0664219988e"}, - {file = "tokenizers-0.20.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f4cb0c614b0135e781de96c2af87e73da0389ac1458e2a97562ed26e29490d8d"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7eb2fb1c432f5746b22f8a7f09fc18c4156cb0031c77f53cb19379d82d43297a"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfa8d029bb156181b006643309d6b673615a24e4ed24cf03aa191d599b996f51"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f90549622de3bf476ad9f1dd6f3f952ec3ed6ab8615ae88ef060d0c5bfad55d"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1d469c74eebf5c43fd61cd9b030e271d17198edd7bd45392e03a3c091d7d6d4"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bee8f53b2594749f4460d53253bae55d718f04e9b633efa0f5df8938bd98e4f0"}, - {file = "tokenizers-0.20.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:938441babf3e5720e4459e306ef2809fb267680df9d1ff2873458b22aef60248"}, - {file = "tokenizers-0.20.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7310ab23d7b0caebecc0e8be11a1146f320f5f07284000f6ea54793e83de1b75"}, - {file = "tokenizers-0.20.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:16121eb030a2b13094cfec936b0c12e8b4063c5f839591ea7d0212336d8f9921"}, - {file = "tokenizers-0.20.3-cp39-none-win32.whl", hash = "sha256:401cc21ef642ee235985d747f65e18f639464d377c70836c9003df208d582064"}, - {file = "tokenizers-0.20.3-cp39-none-win_amd64.whl", hash = "sha256:7498f3ea7746133335a6adb67a77cf77227a8b82c8483f644a2e5f86fea42b8d"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e919f2e3e68bb51dc31de4fcbbeff3bdf9c1cad489044c75e2b982a91059bd3c"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b8e9608f2773996cc272156e305bd79066163a66b0390fe21750aff62df1ac07"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39270a7050deaf50f7caff4c532c01b3c48f6608d42b3eacdebdc6795478c8df"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e005466632b1c5d2d2120f6de8aa768cc9d36cd1ab7d51d0c27a114c91a1e6ee"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a07962340b36189b6c8feda552ea1bfeee6cf067ff922a1d7760662c2ee229e5"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:55046ad3dd5f2b3c67501fcc8c9cbe3e901d8355f08a3b745e9b57894855f85b"}, - {file = "tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:efcf0eb939988b627558aaf2b9dc3e56d759cad2e0cfa04fcab378e4b48fc4fd"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f3558a7ae6a6d38a77dfce12172a1e2e1bf3e8871e744a1861cd7591ea9ebe24"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d53029fe44bc70c3ff14ef512460a0cf583495a0f8e2f4b70e26eb9438e38a9"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a2a56397b2bec5a629b516b23f0f8a3e4f978c7488d4a299980f8375954b85"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e5bfaae740ef9ece000f8a07e78ac0e2b085c5ce9648f8593ddf0243c9f76d"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fbaf3ea28fedfb2283da60e710aff25492e795a7397cad8a50f1e079b65a5a70"}, - {file = "tokenizers-0.20.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c47c037116310dc976eb96b008e41b9cfaba002ed8005848d4d632ee0b7ba9ae"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c31751f0721f58f5e19bb27c1acc259aeff860d8629c4e1a900b26a1979ada8e"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:c697cbd3be7a79ea250ea5f380d6f12e534c543cfb137d5c734966b3ee4f34cc"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b48971b88ef9130bf35b41b35fd857c3c4dae4a9cd7990ebc7fc03e59cc92438"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e615de179bbe060ab33773f0d98a8a8572b5883dd7dac66c1de8c056c7e748c"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da1ec842035ed9999c62e45fbe0ff14b7e8a7e02bb97688cc6313cf65e5cd755"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:6ee4954c1dd23aadc27958dad759006e71659d497dcb0ef0c7c87ea992c16ebd"}, - {file = "tokenizers-0.20.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3eda46ca402751ec82553a321bf35a617b76bbed7586e768c02ccacbdda94d6d"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:de082392a85eb0055cc055c535bff2f0cc15d7a000bdc36fbf601a0f3cf8507a"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c3db46cc0647bfd88263afdb739b92017a02a87ee30945cb3e86c7e25c7c9917"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a292392f24ab9abac5cfa8197e5a6208f2e43723420217e1ceba0b4ec77816ac"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dcd91f4e60f62b20d83a87a84fe062035a1e3ff49a8c2bbdeb2d441c8e311f4"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:900991a2b8ee35961b1095db7e265342e0e42a84c1a594823d5ee9f8fb791958"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5a8d8261ca2133d4f98aa9627c748189502b3787537ba3d7e2beb4f7cfc5d627"}, - {file = "tokenizers-0.20.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c4fd4d71e6deb6ddf99d8d0eab87d1d16f635898906e631914a9bae8ae9f2cfb"}, - {file = "tokenizers-0.20.3.tar.gz", hash = "sha256:2278b34c5d0dd78e087e1ca7f9b1dcbf129d80211afa645f214bd6e051037539"}, + {file = "tokenizers-0.20.4-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:25f59ebc5b79e7bbafe86bfec62696468016627157d8a9ceba5092486796a156"}, + {file = "tokenizers-0.20.4-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:f41df992797ad0ff9472e8a2c7a3ef7178667935d984639b73da7d19b33ea4e2"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7786004e180fab72e6e873e982ccd18b3cfa31521d397b6c024cc19175abf91b"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:075635cd7e6936cc4b3a13901c1a05690d5b533ce3d0f035dee21117dd4f04ae"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa392bae7f0a36e4c97ad43100390ad84f2a1bfff6742604774210f7d7a4fa13"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eee647ccba9cbd36b5ec4e8e73d25dbd586ec06de7a43ff83a3dad9fec466a29"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:735ffc9bba65d20f8ab5f82dfbab262bb066afc7dee3684c5e5435e7a5da445d"}, + {file = "tokenizers-0.20.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05c2bab579c1f31292b48bb79b6334b5346c1ec87dac81089e6098b8a20b2fd4"}, + {file = "tokenizers-0.20.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3e960ad5c467a95e5665e518151ed9024e7aa111d2c54ff1938162cc7c2b8959"}, + {file = "tokenizers-0.20.4-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:e59a405459ed31b73426b364752c2e7c73f4a94210a63fd7acd161a774af7bd2"}, + {file = "tokenizers-0.20.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:84bf8b4a7bbf1c6bb78775ae309a5c69d08dadf7b88125d6d19ccb4738a87350"}, + {file = "tokenizers-0.20.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a6d392a20ca70692aaba8a636677b57f6c67655879773ba2b6be8cb4a19ce6b8"}, + {file = "tokenizers-0.20.4-cp39-abi3-win32.whl", hash = "sha256:60ea37c885a9bb8efa53b7542ea83561cd00eb3ffb47a77f5ae622d9f7f66ffe"}, + {file = "tokenizers-0.20.4-cp39-abi3-win_amd64.whl", hash = "sha256:6cba92b87969ddf5a7e2f2293577c30129d8c22c6f68e8c626d3e76b8d52412c"}, + {file = "tokenizers-0.20.4.tar.gz", hash = "sha256:db50ac15e92981227f499268541306824f49e97dbeec05d118ebdc7c2d22322c"}, ] [package.dependencies] @@ -6489,40 +6413,40 @@ scipy = ["scipy"] [[package]] name = "tornado" -version = "6.4.1" +version = "6.4.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.8" files = [ - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, - {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, - {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, - {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, - {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, - {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, - {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, ] [[package]] name = "tqdm" -version = "4.67.0" +version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.67.0-py3-none-any.whl", hash = "sha256:0cd8af9d56911acab92182e88d763100d4788bdf421d251616040cc4d44863be"}, - {file = "tqdm-4.67.0.tar.gz", hash = "sha256:fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a"}, + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] discord = ["requests"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] @@ -6699,13 +6623,13 @@ typing-extensions = ">=3.7.4.3" [[package]] name = "types-openpyxl" -version = "3.1.5.20241114" +version = "3.1.5.20241126" description = "Typing stubs for openpyxl" optional = false python-versions = ">=3.8" files = [ - {file = "types-openpyxl-3.1.5.20241114.tar.gz", hash = "sha256:caeb9aafed8a5ffabdc74f880b148d90375364a1cfe7915d5065c5d79f3fe6a2"}, - {file = "types_openpyxl-3.1.5.20241114-py3-none-any.whl", hash = "sha256:f2925f595b08f5aef1baa725c9ee40baaf51beb05d98ac150593d3bdd37b1029"}, + {file = "types_openpyxl-3.1.5.20241126-py3-none-any.whl", hash = "sha256:e50ad5c2dec2c92cca521abed5c039975226e8e76389f17ab0ef813595593fbe"}, + {file = "types_openpyxl-3.1.5.20241126.tar.gz", hash = "sha256:f599afab19f87aa11672ee675346401d82a0dac71988df9a5411cdb1e7477377"}, ] [[package]] @@ -6861,13 +6785,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.27.1" +version = "20.28.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, - {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] @@ -6945,13 +6869,13 @@ files = [ [[package]] name = "wheel" -version = "0.45.0" +version = "0.45.1" description = "A built-package format for Python" optional = false python-versions = ">=3.8" files = [ - {file = "wheel-0.45.0-py3-none-any.whl", hash = "sha256:52f0baa5e6522155090a09c6bd95718cc46956d1b51d537ea5454249edb671c7"}, - {file = "wheel-0.45.0.tar.gz", hash = "sha256:a57353941a3183b3d5365346b567a260a0602a0f8a635926a7dede41b94c674a"}, + {file = "wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248"}, + {file = "wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729"}, ] [package.extras] @@ -6970,81 +6894,76 @@ files = [ [[package]] name = "wrapt" -version = "1.16.0" +version = "1.17.0" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, - {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, - {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, - {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, - {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, - {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, - {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, - {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, - {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, - {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, - {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, - {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, - {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, - {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, - {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, - {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, - {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, - {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, - {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, - {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, - {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, - {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, - {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, - {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, - {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, - {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, - {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, - {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, - {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, - {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, - {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, - {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, - {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, - {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, - {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, - {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, - {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, + {file = "wrapt-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a0c23b8319848426f305f9cb0c98a6e32ee68a36264f45948ccf8e7d2b941f8"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ca5f060e205f72bec57faae5bd817a1560fcfc4af03f414b08fa29106b7e2d"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e185ec6060e301a7e5f8461c86fb3640a7beb1a0f0208ffde7a65ec4074931df"}, + {file = "wrapt-1.17.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb90765dd91aed05b53cd7a87bd7f5c188fcd95960914bae0d32c5e7f899719d"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:879591c2b5ab0a7184258274c42a126b74a2c3d5a329df16d69f9cee07bba6ea"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fce6fee67c318fdfb7f285c29a82d84782ae2579c0e1b385b7f36c6e8074fffb"}, + {file = "wrapt-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0698d3a86f68abc894d537887b9bbf84d29bcfbc759e23f4644be27acf6da301"}, + {file = "wrapt-1.17.0-cp310-cp310-win32.whl", hash = "sha256:69d093792dc34a9c4c8a70e4973a3361c7a7578e9cd86961b2bbf38ca71e4e22"}, + {file = "wrapt-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:f28b29dc158ca5d6ac396c8e0a2ef45c4e97bb7e65522bfc04c989e6fe814575"}, + {file = "wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489"}, + {file = "wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d"}, + {file = "wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b"}, + {file = "wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346"}, + {file = "wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a"}, + {file = "wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451"}, + {file = "wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada"}, + {file = "wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4"}, + {file = "wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635"}, + {file = "wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7"}, + {file = "wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4"}, + {file = "wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90"}, + {file = "wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a"}, + {file = "wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045"}, + {file = "wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838"}, + {file = "wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d"}, + {file = "wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b"}, + {file = "wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab"}, + {file = "wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf"}, + {file = "wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a"}, + {file = "wrapt-1.17.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:69c40d4655e078ede067a7095544bcec5a963566e17503e75a3a3e0fe2803b13"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f495b6754358979379f84534f8dd7a43ff8cff2558dcdea4a148a6e713a758f"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa7ef4e0886a6f482e00d1d5bcd37c201b383f1d314643dfb0367169f94f04c"}, + {file = "wrapt-1.17.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fc931382e56627ec4acb01e09ce66e5c03c384ca52606111cee50d931a342d"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8f8909cdb9f1b237786c09a810e24ee5e15ef17019f7cecb207ce205b9b5fcce"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad47b095f0bdc5585bced35bd088cbfe4177236c7df9984b3cc46b391cc60627"}, + {file = "wrapt-1.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:948a9bd0fb2c5120457b07e59c8d7210cbc8703243225dbd78f4dfc13c8d2d1f"}, + {file = "wrapt-1.17.0-cp38-cp38-win32.whl", hash = "sha256:5ae271862b2142f4bc687bdbfcc942e2473a89999a54231aa1c2c676e28f29ea"}, + {file = "wrapt-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:f335579a1b485c834849e9075191c9898e0731af45705c2ebf70e0cd5d58beed"}, + {file = "wrapt-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d751300b94e35b6016d4b1e7d0e7bbc3b5e1751e2405ef908316c2a9024008a1"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7264cbb4a18dc4acfd73b63e4bcfec9c9802614572025bdd44d0721983fc1d9c"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33539c6f5b96cf0b1105a0ff4cf5db9332e773bb521cc804a90e58dc49b10578"}, + {file = "wrapt-1.17.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c30970bdee1cad6a8da2044febd824ef6dc4cc0b19e39af3085c763fdec7de33"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc7f729a72b16ee21795a943f85c6244971724819819a41ddbaeb691b2dd85ad"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6ff02a91c4fc9b6a94e1c9c20f62ea06a7e375f42fe57587f004d1078ac86ca9"}, + {file = "wrapt-1.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dfb7cff84e72e7bf975b06b4989477873dcf160b2fd89959c629535df53d4e0"}, + {file = "wrapt-1.17.0-cp39-cp39-win32.whl", hash = "sha256:2399408ac33ffd5b200480ee858baa58d77dd30e0dd0cab6a8a9547135f30a88"}, + {file = "wrapt-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f763a29ee6a20c529496a20a7bcb16a73de27f5da6a843249c7047daf135977"}, + {file = "wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371"}, + {file = "wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801"}, ] [[package]] @@ -7192,93 +7111,93 @@ files = [ [[package]] name = "yarl" -version = "1.17.2" +version = "1.18.0" description = "Yet another URL library" optional = false python-versions = ">=3.9" files = [ - {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93771146ef048b34201bfa382c2bf74c524980870bb278e6df515efaf93699ff"}, - {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8281db240a1616af2f9c5f71d355057e73a1409c4648c8949901396dc0a3c151"}, - {file = "yarl-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:170ed4971bf9058582b01a8338605f4d8c849bd88834061e60e83b52d0c76870"}, - {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc61b005f6521fcc00ca0d1243559a5850b9dd1e1fe07b891410ee8fe192d0c0"}, - {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:871e1b47eec7b6df76b23c642a81db5dd6536cbef26b7e80e7c56c2fd371382e"}, - {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a58a2f2ca7aaf22b265388d40232f453f67a6def7355a840b98c2d547bd037f"}, - {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:736bb076f7299c5c55dfef3eb9e96071a795cb08052822c2bb349b06f4cb2e0a"}, - {file = "yarl-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8fd51299e21da709eabcd5b2dd60e39090804431292daacbee8d3dabe39a6bc0"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:358dc7ddf25e79e1cc8ee16d970c23faee84d532b873519c5036dbb858965795"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:50d866f7b1a3f16f98603e095f24c0eeba25eb508c85a2c5939c8b3870ba2df8"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8b9c4643e7d843a0dca9cd9d610a0876e90a1b2cbc4c5ba7930a0d90baf6903f"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d63123bfd0dce5f91101e77c8a5427c3872501acece8c90df457b486bc1acd47"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4e76381be3d8ff96a4e6c77815653063e87555981329cf8f85e5be5abf449021"}, - {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:734144cd2bd633a1516948e477ff6c835041c0536cef1d5b9a823ae29899665b"}, - {file = "yarl-1.17.2-cp310-cp310-win32.whl", hash = "sha256:26bfb6226e0c157af5da16d2d62258f1ac578d2899130a50433ffee4a5dfa673"}, - {file = "yarl-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:76499469dcc24759399accd85ec27f237d52dec300daaca46a5352fcbebb1071"}, - {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:792155279dc093839e43f85ff7b9b6493a8eaa0af1f94f1f9c6e8f4de8c63500"}, - {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38bc4ed5cae853409cb193c87c86cd0bc8d3a70fd2268a9807217b9176093ac6"}, - {file = "yarl-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4a8c83f6fcdc327783bdc737e8e45b2e909b7bd108c4da1892d3bc59c04a6d84"}, - {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6d5fed96f0646bfdf698b0a1cebf32b8aae6892d1bec0c5d2d6e2df44e1e2d"}, - {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:782ca9c58f5c491c7afa55518542b2b005caedaf4685ec814fadfcee51f02493"}, - {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff6af03cac0d1a4c3c19e5dcc4c05252411bf44ccaa2485e20d0a7c77892ab6e"}, - {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a3f47930fbbed0f6377639503848134c4aa25426b08778d641491131351c2c8"}, - {file = "yarl-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1fa68a3c921365c5745b4bd3af6221ae1f0ea1bf04b69e94eda60e57958907f"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:187df91395c11e9f9dc69b38d12406df85aa5865f1766a47907b1cc9855b6303"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:93d1c8cc5bf5df401015c5e2a3ce75a5254a9839e5039c881365d2a9dcfc6dc2"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:11d86c6145ac5c706c53d484784cf504d7d10fa407cb73b9d20f09ff986059ef"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c42774d1d1508ec48c3ed29e7b110e33f5e74a20957ea16197dbcce8be6b52ba"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8e589379ef0407b10bed16cc26e7392ef8f86961a706ade0a22309a45414d7"}, - {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1056cadd5e850a1c026f28e0704ab0a94daaa8f887ece8dfed30f88befb87bb0"}, - {file = "yarl-1.17.2-cp311-cp311-win32.whl", hash = "sha256:be4c7b1c49d9917c6e95258d3d07f43cfba2c69a6929816e77daf322aaba6628"}, - {file = "yarl-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:ac8eda86cc75859093e9ce390d423aba968f50cf0e481e6c7d7d63f90bae5c9c"}, - {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd90238d3a77a0e07d4d6ffdebc0c21a9787c5953a508a2231b5f191455f31e9"}, - {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c74f0b0472ac40b04e6d28532f55cac8090e34c3e81f118d12843e6df14d0909"}, - {file = "yarl-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d486ddcaca8c68455aa01cf53d28d413fb41a35afc9f6594a730c9779545876"}, - {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25b7e93f5414b9a983e1a6c1820142c13e1782cc9ed354c25e933aebe97fcf2"}, - {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a0baff7827a632204060f48dca9e63fbd6a5a0b8790c1a2adfb25dc2c9c0d50"}, - {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:460024cacfc3246cc4d9f47a7fc860e4fcea7d1dc651e1256510d8c3c9c7cde0"}, - {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5870d620b23b956f72bafed6a0ba9a62edb5f2ef78a8849b7615bd9433384171"}, - {file = "yarl-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2941756754a10e799e5b87e2319bbec481ed0957421fba0e7b9fb1c11e40509f"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9611b83810a74a46be88847e0ea616794c406dbcb4e25405e52bff8f4bee2d0a"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cd7e35818d2328b679a13268d9ea505c85cd773572ebb7a0da7ccbca77b6a52e"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6b981316fcd940f085f646b822c2ff2b8b813cbd61281acad229ea3cbaabeb6b"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:688058e89f512fb7541cb85c2f149c292d3fa22f981d5a5453b40c5da49eb9e8"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56afb44a12b0864d17b597210d63a5b88915d680f6484d8d202ed68ade38673d"}, - {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:17931dfbb84ae18b287279c1f92b76a3abcd9a49cd69b92e946035cff06bcd20"}, - {file = "yarl-1.17.2-cp312-cp312-win32.whl", hash = "sha256:ff8d95e06546c3a8c188f68040e9d0360feb67ba8498baf018918f669f7bc39b"}, - {file = "yarl-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:4c840cc11163d3c01a9d8aad227683c48cd3e5be5a785921bcc2a8b4b758c4f3"}, - {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3294f787a437cb5d81846de3a6697f0c35ecff37a932d73b1fe62490bef69211"}, - {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1e7fedb09c059efee2533119666ca7e1a2610072076926fa028c2ba5dfeb78c"}, - {file = "yarl-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:da9d3061e61e5ae3f753654813bc1cd1c70e02fb72cf871bd6daf78443e9e2b1"}, - {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91c012dceadc695ccf69301bfdccd1fc4472ad714fe2dd3c5ab4d2046afddf29"}, - {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f11fd61d72d93ac23718d393d2a64469af40be2116b24da0a4ca6922df26807e"}, - {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46c465ad06971abcf46dd532f77560181387b4eea59084434bdff97524444032"}, - {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef6eee1a61638d29cd7c85f7fd3ac7b22b4c0fabc8fd00a712b727a3e73b0685"}, - {file = "yarl-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4434b739a8a101a837caeaa0137e0e38cb4ea561f39cb8960f3b1e7f4967a3fc"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:752485cbbb50c1e20908450ff4f94217acba9358ebdce0d8106510859d6eb19a"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:17791acaa0c0f89323c57da7b9a79f2174e26d5debbc8c02d84ebd80c2b7bff8"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5c6ea72fe619fee5e6b5d4040a451d45d8175f560b11b3d3e044cd24b2720526"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db5ac3871ed76340210fe028f535392f097fb31b875354bcb69162bba2632ef4"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7a1606ba68e311576bcb1672b2a1543417e7e0aa4c85e9e718ba6466952476c0"}, - {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9bc27dd5cfdbe3dc7f381b05e6260ca6da41931a6e582267d5ca540270afeeb2"}, - {file = "yarl-1.17.2-cp313-cp313-win32.whl", hash = "sha256:52492b87d5877ec405542f43cd3da80bdcb2d0c2fbc73236526e5f2c28e6db28"}, - {file = "yarl-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:8e1bf59e035534ba4077f5361d8d5d9194149f9ed4f823d1ee29ef3e8964ace3"}, - {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c556fbc6820b6e2cda1ca675c5fa5589cf188f8da6b33e9fc05b002e603e44fa"}, - {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f2f44a4247461965fed18b2573f3a9eb5e2c3cad225201ee858726cde610daca"}, - {file = "yarl-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a3ede8c248f36b60227eb777eac1dbc2f1022dc4d741b177c4379ca8e75571a"}, - {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2654caaf5584449d49c94a6b382b3cb4a246c090e72453493ea168b931206a4d"}, - {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d41c684f286ce41fa05ab6af70f32d6da1b6f0457459a56cf9e393c1c0b2217"}, - {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2270d590997445a0dc29afa92e5534bfea76ba3aea026289e811bf9ed4b65a7f"}, - {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18662443c6c3707e2fc7fad184b4dc32dd428710bbe72e1bce7fe1988d4aa654"}, - {file = "yarl-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75ac158560dec3ed72f6d604c81090ec44529cfb8169b05ae6fcb3e986b325d9"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1fee66b32e79264f428dc8da18396ad59cc48eef3c9c13844adec890cd339db5"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:585ce7cd97be8f538345de47b279b879e091c8b86d9dbc6d98a96a7ad78876a3"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c019abc2eca67dfa4d8fb72ba924871d764ec3c92b86d5b53b405ad3d6aa56b0"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c6e659b9a24d145e271c2faf3fa6dd1fcb3e5d3f4e17273d9e0350b6ab0fe6e2"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:d17832ba39374134c10e82d137e372b5f7478c4cceeb19d02ae3e3d1daed8721"}, - {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bc3003710e335e3f842ae3fd78efa55f11a863a89a72e9a07da214db3bf7e1f8"}, - {file = "yarl-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f5ffc6b7ace5b22d9e73b2a4c7305740a339fbd55301d52735f73e21d9eb3130"}, - {file = "yarl-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:48e424347a45568413deec6f6ee2d720de2cc0385019bedf44cd93e8638aa0ed"}, - {file = "yarl-1.17.2-py3-none-any.whl", hash = "sha256:dd7abf4f717e33b7487121faf23560b3a50924f80e4bef62b22dab441ded8f3b"}, - {file = "yarl-1.17.2.tar.gz", hash = "sha256:753eaaa0c7195244c84b5cc159dc8204b7fd99f716f11198f999f2332a86b178"}, + {file = "yarl-1.18.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:074fee89caab89a97e18ef5f29060ef61ba3cae6cd77673acc54bfdd3214b7b7"}, + {file = "yarl-1.18.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b026cf2c32daf48d90c0c4e406815c3f8f4cfe0c6dfccb094a9add1ff6a0e41a"}, + {file = "yarl-1.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ae38bd86eae3ba3d2ce5636cc9e23c80c9db2e9cb557e40b98153ed102b5a736"}, + {file = "yarl-1.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:685cc37f3f307c6a8e879986c6d85328f4c637f002e219f50e2ef66f7e062c1d"}, + {file = "yarl-1.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8254dbfce84ee5d1e81051ee7a0f1536c108ba294c0fdb5933476398df0654f3"}, + {file = "yarl-1.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20de4a8b04de70c49698dc2390b7fd2d18d424d3b876371f9b775e2b462d4b41"}, + {file = "yarl-1.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0a2074a37285570d54b55820687de3d2f2b9ecf1b714e482e48c9e7c0402038"}, + {file = "yarl-1.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f576ed278860df2721a5d57da3381040176ef1d07def9688a385c8330db61a1"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3a3709450a574d61be6ac53d582496014342ea34876af8dc17cc16da32826c9a"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:bd80ed29761490c622edde5dd70537ca8c992c2952eb62ed46984f8eff66d6e8"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:32141e13a1d5a48525e519c9197d3f4d9744d818d5c7d6547524cc9eccc8971e"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8b8d3e4e014fb4274f1c5bf61511d2199e263909fb0b8bda2a7428b0894e8dc6"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:701bb4a8f4de191c8c0cc9a1e6d5142f4df880e9d1210e333b829ca9425570ed"}, + {file = "yarl-1.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a45d94075ac0647621eaaf693c8751813a3eccac455d423f473ffed38c8ac5c9"}, + {file = "yarl-1.18.0-cp310-cp310-win32.whl", hash = "sha256:34176bfb082add67cb2a20abd85854165540891147f88b687a5ed0dc225750a0"}, + {file = "yarl-1.18.0-cp310-cp310-win_amd64.whl", hash = "sha256:73553bbeea7d6ec88c08ad8027f4e992798f0abc459361bf06641c71972794dc"}, + {file = "yarl-1.18.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b8e8c516dc4e1a51d86ac975b0350735007e554c962281c432eaa5822aa9765c"}, + {file = "yarl-1.18.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2e6b4466714a73f5251d84b471475850954f1fa6acce4d3f404da1d55d644c34"}, + {file = "yarl-1.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c893f8c1a6d48b25961e00922724732d00b39de8bb0b451307482dc87bddcd74"}, + {file = "yarl-1.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13aaf2bdbc8c86ddce48626b15f4987f22e80d898818d735b20bd58f17292ee8"}, + {file = "yarl-1.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd21c0128e301851de51bc607b0a6da50e82dc34e9601f4b508d08cc89ee7929"}, + {file = "yarl-1.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:205de377bd23365cd85562c9c6c33844050a93661640fda38e0567d2826b50df"}, + {file = "yarl-1.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed69af4fe2a0949b1ea1d012bf065c77b4c7822bad4737f17807af2adb15a73c"}, + {file = "yarl-1.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e1c18890091aa3cc8a77967943476b729dc2016f4cfe11e45d89b12519d4a93"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:91b8fb9427e33f83ca2ba9501221ffaac1ecf0407f758c4d2f283c523da185ee"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:536a7a8a53b75b2e98ff96edb2dfb91a26b81c4fed82782035767db5a465be46"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a64619a9c47c25582190af38e9eb382279ad42e1f06034f14d794670796016c0"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c73a6bbc97ba1b5a0c3c992ae93d721c395bdbb120492759b94cc1ac71bc6350"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a173401d7821a2a81c7b47d4e7d5c4021375a1441af0c58611c1957445055056"}, + {file = "yarl-1.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7520e799b1f84e095cce919bd6c23c9d49472deeef25fe1ef960b04cca51c3fc"}, + {file = "yarl-1.18.0-cp311-cp311-win32.whl", hash = "sha256:c4cb992d8090d5ae5f7afa6754d7211c578be0c45f54d3d94f7781c495d56716"}, + {file = "yarl-1.18.0-cp311-cp311-win_amd64.whl", hash = "sha256:52c136f348605974c9b1c878addd6b7a60e3bf2245833e370862009b86fa4689"}, + {file = "yarl-1.18.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1ece25e2251c28bab737bdf0519c88189b3dd9492dc086a1d77336d940c28ced"}, + {file = "yarl-1.18.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:454902dc1830d935c90b5b53c863ba2a98dcde0fbaa31ca2ed1ad33b2a7171c6"}, + {file = "yarl-1.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:01be8688fc211dc237e628fcc209dda412d35de7642453059a0553747018d075"}, + {file = "yarl-1.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d26f1fa9fa2167bb238f6f4b20218eb4e88dd3ef21bb8f97439fa6b5313e30d"}, + {file = "yarl-1.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b234a4a9248a9f000b7a5dfe84b8cb6210ee5120ae70eb72a4dcbdb4c528f72f"}, + {file = "yarl-1.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe94d1de77c4cd8caff1bd5480e22342dbd54c93929f5943495d9c1e8abe9f42"}, + {file = "yarl-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b4c90c5363c6b0a54188122b61edb919c2cd1119684999d08cd5e538813a28e"}, + {file = "yarl-1.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a98ecadc5a241c9ba06de08127ee4796e1009555efd791bac514207862b43d"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9106025c7f261f9f5144f9aa7681d43867eed06349a7cfb297a1bc804de2f0d1"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:f275ede6199d0f1ed4ea5d55a7b7573ccd40d97aee7808559e1298fe6efc8dbd"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f7edeb1dcc7f50a2c8e08b9dc13a413903b7817e72273f00878cb70e766bdb3b"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c083f6dd6951b86e484ebfc9c3524b49bcaa9c420cb4b2a78ef9f7a512bfcc85"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:80741ec5b471fbdfb997821b2842c59660a1c930ceb42f8a84ba8ca0f25a66aa"}, + {file = "yarl-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1a3297b9cad594e1ff0c040d2881d7d3a74124a3c73e00c3c71526a1234a9f7"}, + {file = "yarl-1.18.0-cp312-cp312-win32.whl", hash = "sha256:cd6ab7d6776c186f544f893b45ee0c883542b35e8a493db74665d2e594d3ca75"}, + {file = "yarl-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:039c299a0864d1f43c3e31570045635034ea7021db41bf4842693a72aca8df3a"}, + {file = "yarl-1.18.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6fb64dd45453225f57d82c4764818d7a205ee31ce193e9f0086e493916bd4f72"}, + {file = "yarl-1.18.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3adaaf9c6b1b4fc258584f4443f24d775a2086aee82d1387e48a8b4f3d6aecf6"}, + {file = "yarl-1.18.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:da206d1ec78438a563c5429ab808a2b23ad7bc025c8adbf08540dde202be37d5"}, + {file = "yarl-1.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:576d258b21c1db4c6449b1c572c75d03f16a482eb380be8003682bdbe7db2f28"}, + {file = "yarl-1.18.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c60e547c0a375c4bfcdd60eef82e7e0e8698bf84c239d715f5c1278a73050393"}, + {file = "yarl-1.18.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3818eabaefb90adeb5e0f62f047310079d426387991106d4fbf3519eec7d90a"}, + {file = "yarl-1.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5f72421246c21af6a92fbc8c13b6d4c5427dfd949049b937c3b731f2f9076bd"}, + {file = "yarl-1.18.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7fa7d37f2ada0f42e0723632993ed422f2a679af0e200874d9d861720a54f53e"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:42ba84e2ac26a3f252715f8ec17e6fdc0cbf95b9617c5367579fafcd7fba50eb"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6a49ad0102c0f0ba839628d0bf45973c86ce7b590cdedf7540d5b1833ddc6f00"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:96404e8d5e1bbe36bdaa84ef89dc36f0e75939e060ca5cd45451aba01db02902"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a0509475d714df8f6d498935b3f307cd122c4ca76f7d426c7e1bb791bcd87eda"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1ff116f0285b5c8b3b9a2680aeca29a858b3b9e0402fc79fd850b32c2bcb9f8b"}, + {file = "yarl-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2580c1d7e66e6d29d6e11855e3b1c6381971e0edd9a5066e6c14d79bc8967af"}, + {file = "yarl-1.18.0-cp313-cp313-win32.whl", hash = "sha256:14408cc4d34e202caba7b5ac9cc84700e3421a9e2d1b157d744d101b061a4a88"}, + {file = "yarl-1.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:1db1537e9cb846eb0ff206eac667f627794be8b71368c1ab3207ec7b6f8c5afc"}, + {file = "yarl-1.18.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fa2c9cb607e0f660d48c54a63de7a9b36fef62f6b8bd50ff592ce1137e73ac7d"}, + {file = "yarl-1.18.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c0f4808644baf0a434a3442df5e0bedf8d05208f0719cedcd499e168b23bfdc4"}, + {file = "yarl-1.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7db9584235895a1dffca17e1c634b13870852094f6389b68dcc6338086aa7b08"}, + {file = "yarl-1.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:309f8d27d6f93ceeeb80aa6980e883aa57895270f7f41842b92247e65d7aeddf"}, + {file = "yarl-1.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:609ffd44fed2ed88d9b4ef62ee860cf86446cf066333ad4ce4123505b819e581"}, + {file = "yarl-1.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f172b8b2c72a13a06ea49225a9c47079549036ad1b34afa12d5491b881f5b993"}, + {file = "yarl-1.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d89ae7de94631b60d468412c18290d358a9d805182373d804ec839978b120422"}, + {file = "yarl-1.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:466d31fd043ef9af822ee3f1df8fdff4e8c199a7f4012c2642006af240eade17"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7609b8462351c4836b3edce4201acb6dd46187b207c589b30a87ffd1813b48dc"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:d9d4f5e471e8dc49b593a80766c2328257e405f943c56a3dc985c125732bc4cf"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:67b336c15e564d76869c9a21316f90edf546809a5796a083b8f57c845056bc01"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:b212452b80cae26cb767aa045b051740e464c5129b7bd739c58fbb7deb339e7b"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:38b39b7b3e692b6c92b986b00137a3891eddb66311b229d1940dcbd4f025083c"}, + {file = "yarl-1.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ee6884a8848792d58b854946b685521f41d8871afa65e0d4a774954e9c9e89"}, + {file = "yarl-1.18.0-cp39-cp39-win32.whl", hash = "sha256:b4095c5019bb889aa866bf12ed4c85c0daea5aafcb7c20d1519f02a1e738f07f"}, + {file = "yarl-1.18.0-cp39-cp39-win_amd64.whl", hash = "sha256:2d90f2e4d16a5b0915ee065218b435d2ef619dd228973b1b47d262a6f7cd8fa5"}, + {file = "yarl-1.18.0-py3-none-any.whl", hash = "sha256:dbf53db46f7cf176ee01d8d98c39381440776fcda13779d269a8ba664f69bec0"}, + {file = "yarl-1.18.0.tar.gz", hash = "sha256:20d95535e7d833889982bfe7cc321b7f63bf8879788fee982c76ae2b24cfb715"}, ] [package.dependencies] @@ -7312,4 +7231,4 @@ tesserocr = ["tesserocr"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "d824c81c132de19beea5d5e395d70c1b9566bf5b938fec3d12ad478b953fd639" +content-hash = "0e1ba9bc3f10cdd3ddf161469701ca603279bad13505ff3b7b042826e2de4c35" diff --git a/pyproject.toml b/pyproject.toml index 7921904e..f387657a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ packages = [{include = "docling"}] ###################### python = "^3.9" pydantic = ">=2.0.0,<2.10" -docling-core = "^2.4.0" +docling-core = "^2.5.1" docling-ibm-models = "^2.0.6" deepsearch-glm = "^0.26.1" filetype = "^1.2.0" diff --git a/tests/data/groundtruth/docling_v1/redp5110_sampled.pages.json b/tests/data/groundtruth/docling_v1/redp5110_sampled.pages.json index 5765cb25..c83414a2 100644 --- a/tests/data/groundtruth/docling_v1/redp5110_sampled.pages.json +++ b/tests/data/groundtruth/docling_v1/redp5110_sampled.pages.json @@ -1 +1 @@ -[{"page_no": 0, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}]}}, {"page_no": 1, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"3": {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}, {"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}]}}, {"page_no": 2, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": []}}, {"page_no": 3, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}, {"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}]}}, {"page_no": 4, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}]}}, {"page_no": 5, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "body": [{"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "headers": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 6, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 7, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"17": {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 8, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"9": {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}, {"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}]}}, {"page_no": 9, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}, {"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}]}}, {"page_no": 10, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "SignedonasALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 218.71170000000004, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"14": {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}, {"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}]}}, {"page_no": 11, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"12": {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 12, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}, {"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "body": [{"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}]}}, {"page_no": 13, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 14, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}, {"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}]}}, {"page_no": 15, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "body": [{"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 16, "size": {"width": 612.0, "height": 792.0}, "cells": [], "predictions": {"layout": {"clusters": []}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [], "body": [], "headers": []}}, {"page_no": 17, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "body": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "headers": [{"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}]}}] +[{"page_no": 0, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}]}}, {"page_no": 1, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"3": {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}, {"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}]}}, {"page_no": 2, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": []}}, {"page_no": 3, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}, {"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}]}}, {"page_no": 4, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}]}}, {"page_no": 5, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "body": [{"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "headers": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 6, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 7, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"17": {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 8, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"9": {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}, {"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}]}}, {"page_no": 9, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}, {"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}]}}, {"page_no": 10, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "SignedonasALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 218.71170000000004, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"14": {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}, {"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}]}}, {"page_no": 11, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"12": {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 12, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}, {"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "body": [{"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}]}}, {"page_no": 13, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 14, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}, {"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}]}}, {"page_no": 15, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "body": [{"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 16, "size": {"width": 612.0, "height": 792.0}, "cells": [], "predictions": {"layout": {"clusters": []}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [], "body": [], "headers": []}}, {"page_no": 17, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "body": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "headers": [{"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}]}}] \ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/2203.01017v2.doctags.txt b/tests/data/groundtruth/docling_v2/2203.01017v2.doctags.txt index a0df3013..5e7b77a9 100644 --- a/tests/data/groundtruth/docling_v2/2203.01017v2.doctags.txt +++ b/tests/data/groundtruth/docling_v2/2203.01017v2.doctags.txt @@ -1,12 +1,11 @@ -TableFormer: Table Structure Understanding with Transformers. -Ahmed Nassar, Nikolaos Livathinos, Maksym Lysak, Peter Staar IBM Research +TableFormer: Table Structure Understanding with Transformers. +Ahmed Nassar, Nikolaos Livathinos, Maksym Lysak, Peter Staar IBM Research { ahn,nli,mly,taa } @zurich.ibm.com -Abstract -a. Picture of a table: -1. Introduction +Abstract +a. Picture of a table: +1. Introduction The occurrence of tables in documents is ubiquitous. They often summarise quantitative or factual data, which is cumbersome to describe in verbose text but nevertheless extremely valuable. Unfortunately, this compact representation is often not easy to parse by machines. There are many implicit conventions used to obtain a compact table representation. For example, tables often have complex columnand row-headers in order to reduce duplicated cell content. Lines of different shapes and sizes are leveraged to separate content or indicate a tree structure. Additionally, tables can also have empty/missing table-entries or multi-row textual table-entries. Fig. 1 shows a table which presents all these issues. -Tables organize valuable content in a concise and compact representation. This content is extremely valuable for systems such as search engines, Knowledge Graph's, etc, since they enhance their predictive capabilities. Unfortunately, tables come in a large variety of shapes and sizes. Furthermore, they can have complex column/row-header configurations, multiline rows, different variety of separation lines, missing entries, etc. As such, the correct identification of the table-structure from an image is a nontrivial task. In this paper, we present a new table-structure identification model. The latter improves the latest end-toend deep learning model (i.e. encoder-dual-decoder from PubTabNet) in two significant ways. First, we introduce a new object detection decoder for table-cells. In this way, we can obtain the content of the table-cells from programmatic PDF's directly from the PDF source and avoid the training of the custom OCR decoders. This architectural change leads to more accurate table-content extraction and allows us to tackle non-english tables. Second, we replace the LSTM decoders with transformer based decoders. This upgrade improves significantly the previous state-of-the-art tree-editing-distance-score (TEDS) from 91% to 98.5% on simple tables and from 88.7% to 95% on complex tables. @@ -18,7 +17,6 @@ c.Structure predicted by TableFormer: -
Tables organize valuable content in a concise and compact representation. This content is extremely valuable for systems such as search engines, Knowledge Graph's, etc, since they enhance their predictive capabilities. Unfortunately, tables come in a large variety of shapes and sizes. Furthermore, they can have complex column/row-header configurations, multiline rows, different variety of separation lines, missing entries, etc. As such, the correct identification of the table-structure from an image is a nontrivial task. In this paper, we present a new table-structure identification model. The latter improves the latest end-toend deep learning model (i.e. encoder-dual-decoder from PubTabNet) in two significant ways. First, we introduce a new object detection decoder for table-cells. In this way, we can obtain the content of the table-cells from programmatic PDF's directly from the PDF source and avoid the training of the custom OCR decoders. This architectural change leads to more accurate table-content extraction and allows us to tackle non-english tables. Second, we replace the LSTM decoders with transformer based decoders. This upgrade improves significantly the previous state-of-the-art tree-editing-distance-score (TEDS) from 91% to 98.5% on simple tables and from 88.7% to 95% on complex tables. Figure 1: Picture of a table with subtle, complex features such as (1) multi-column headers, (2) cell with multi-row text and (3) cells with no content. Image from PubTabNet evaluation set, filename: 'PMC2944238 004 02'.
@@ -34,13 +32,15 @@ The second problem is called table-structure decomposition. The latter is a long standing problem in the community of document understanding [6, 4, 14]. Contrary to the table-location problem, there are no commonly used approaches that can easily be re-purposed to solve this problem. Lately, a set of new model-architectures has been proposed by the community to address table-structure decomposition [37, 36, 18, 20]. All these models have some weaknesses (see Sec. 2). The common denominator here is the reliance on textual features and/or the inability to provide the bounding box of each table-cell in the original image.In this paper, we want to address these weaknesses and present a robust table-structure decomposition algorithm. The design criteria for our model are the following. First, we want our algorithm to be language agnostic. In this way, we can obtain the structure of any table, irregardless of the language. Second, we want our algorithm to leverage as much data as possible from the original PDF document. For programmatic PDF documents, the text-cells can often be extracted much faster and with higher accuracy compared to OCR methods. Last but not least, we want to have a direct link between the table-cell and its bounding box in the image.To meet the design criteria listed above, we developed a new model called TableFormer and a synthetically generated table structure dataset called SynthTabNet $^{1}$. In particular, our contributions in this work can be summarised as follows: + · We propose TableFormer , a transformer based model that predicts tables structure and bounding boxes for the table content simultaneously in an end-to-end approach. · Across all benchmark datasets TableFormer significantly outperforms existing state-of-the-art metrics, while being much more efficient in training and inference to existing works. · We present SynthTabNet a synthetically generated dataset, with various appearance styles and complexity. · An augmented dataset based on PubTabNet [37], FinTabNet [36], and TableBank [17] with generated ground-truth for reproducibility. +The paper is structured as follows. In Sec. 2, we give a brief overview of the current state-of-the-art. In Sec. 3, we describe the datasets on which we train. In Sec. 4, we introduce the TableFormer model-architecture and describeits results & performance in Sec. 5. As a conclusion, we describe how this new model-architecture can be re-purposed for other tasks in the computer-vision community. -2. Previous work and State of the Art +2. Previous work and State of the ArtIdentifying the structure of a table has been an outstanding problem in the document-parsing community, that motivates many organised public challenges [6, 4, 14]. The difficulty of the problem can be attributed to a number of factors. First, there is a large variety in the shapes and sizes of tables. Such large variety requires a flexible method. This is especially true for complex column- and row headers, which can be extremely intricate and demanding. A second factor of complexity is the lack of data with regard to table-structure. Until the publication of PubTabNet [37], there were no large datasets (i.e. > 100 K tables) that provided structure information. This happens primarily due to the fact that tables are notoriously time-consuming to annotate by hand. However, this has definitely changed in recent years with the deliverance of PubTabNet [37], FinTabNet [36], TableBank [17] etc.Before the rising popularity of deep neural networks, the community relied heavily on heuristic and/or statistical methods to do table structure identification [3, 7, 11, 5, 13, 28]. Although such methods work well on constrained tables [12], a more data-driven approach can be applied due to the advent of convolutional neural networks (CNNs) and the availability of large datasets. To the best-of-our knowledge, there are currently two different types of network architecture that are being pursued for state-of-the-art tablestructure identification.Image-to-Text networks : In this type of network, one predicts a sequence of tokens starting from an encoded image. Such sequences of tokens can be HTML table tags [37, 17] or LaTeX symbols[10]. The choice of symbols is ultimately not very important, since one can be transformed into the other. There are however subtle variations in the Image-to-Text networks. The easiest network architectures are "image-encoder → text-decoder" (IETD), similar to network architectures that try to provide captions to images [32]. In these IETD networks, one expects as output the LaTeX/HTML string of the entire table, i.e. the symbols necessary for creating the table with the content of the table. Another approach is the "image-encoder → dual decoder" (IEDD) networks. In these type of networks, one has two consecutive decoders with different purposes. The first decoder is the tag-decoder , i.e. it only produces the HTML/LaTeX tags which construct an empty table. The second content-decoder uses the encoding of the image in combination with the output encoding of each cell-tag (from the tag-decoder ) to generate the textual content of each table cell. The network architecture of IEDD is certainly more elaborate, but it has the advantage that one can pre-train the @@ -48,9 +48,8 @@ In practice, both network architectures (IETD and IEDD) require an implicit, custom trained object-characterrecognition (OCR) to obtain the content of the table-cells. In the case of IETD, this OCR engine is implicit in the decoder similar to [24]. For the IEDD, the OCR is solely embedded in the content-decoder. This reliance on a custom, implicit OCR decoder is of course problematic. OCR is a well known and extremely tough problem, that often needs custom training for each individual language. However, the limited availability for non-english content in the current datasets, makes it impractical to apply the IETD and IEDD methods on tables with other languages. Additionally, OCR can be completely omitted if the tables originate from programmatic PDF documents with known positions of each cell. The latter was the inspiration for the work of this paper.Graph Neural networks : Graph Neural networks (GNN's) take a radically different approach to tablestructure extraction. Note that one table cell can constitute out of multiple text-cells. To obtain the table-structure, one creates an initial graph, where each of the text-cells becomes a node in the graph similar to [33, 34, 2]. Each node is then associated with en embedding vector coming from the encoded image, its coordinates and the encoded text. Furthermore, nodes that represent adjacent text-cells are linked. Graph Convolutional Networks (GCN's) based methods take the image as an input, but also the position of the text-cells and their content [18]. The purpose of a GCN is to transform the input graph into a new graph, which replaces the old links with new ones. The new links then represent the table-structure. With this approach, one can avoid the need to build custom OCR decoders. However, the quality of the reconstructed structure is not comparable to the current state-of-the-art [18].Hybrid Deep Learning-Rule-Based approach : A popular current model for table-structure identification is the use of a hybrid Deep Learning-Rule-Based approach similar to [27, 29]. In this approach, one first detects the position of the table-cells with object detection (e.g. YoloVx or MaskRCNN), then classifies the table into different types (from its images) and finally uses different rule-sets to obtain its table-structure. Currently, this approach achieves stateof-the-art results, but is not an end-to-end deep-learning method. As such, new rules need to be written if different types of tables are encountered. -3. Datasets +3. DatasetsWe rely on large-scale datasets such as PubTabNet [37], FinTabNet [36], and TableBank [17] datasets to train and evaluate our models. These datasets span over various appearance styles and content. We also introduce our own synthetically generated SynthTabNet dataset to fix an im- -
@@ -63,7 +62,6 @@ As it is illustrated in Fig. 2, the table distributions from all datasets are skewed towards simpler structures with fewer number of rows/columns. Additionally, there is very limited variance in the table styles, which in case of PubTabNet and FinTabNet means one styling format for the majority of the tables. Similar limitations appear also in the type of table content, which in some cases (e.g. FinTabNet) is restricted to a certain domain. Ultimately, the lack of diversity in the training dataset damages the ability of the models to generalize well on unseen data.Motivated by those observations we aimed at generating a synthetic table dataset named SynthTabNet . This approach offers control over: 1) the size of the dataset, 2) the table structure, 3) the table style and 4) the type of content. The complexity of the table structure is described by the size of the table header and the table body, as well as the percentage of the table cells covered by row spans and column spans. A set of carefully designed styling templates provides the basis to build a wide range of table appearances. Lastly, the table content is generated out of a curated collection of text corpora. By controlling the size and scope of the synthetic datasets we are able to train and evaluate our models in a variety of different conditions. For example, we can first generate a highly diverse dataset to train our models and then evaluate their performance on other synthetic datasets which are focused on a specific domain.In this regard, we have prepared four synthetic datasets, each one containing 150k examples. The corpora to generate the table text consists of the most frequent terms appearing in PubTabNet and FinTabNet together with randomly generated text. The first two synthetic datasets have been fine-tuned to mimic the appearance of the original datasets but encompass more complicated table structures. The third -
Figure 1: Picture of a table with subtle, complex features such as (1) multi-column headers, (2) cell with multi-row text and (3) cells with no content. Image from PubTabNet evaluation set, filename: 'PMC2944238 004 02'. Figure 2: Distribution of the tables across different table dimensions in PubTabNet + FinTabNet datasets Figure 2: Distribution of the tables across different table dimensions in PubTabNet + FinTabNet datasets Table 1: Both "Combined-Tabnet" and "CombinedTabnet" are variations of the following: (*) The CombinedTabnet dataset is the processed combination of PubTabNet and Fintabnet. (**) The combined dataset is the processed combination of PubTabNet, Fintabnet and TableBank.
@@ -77,17 +75,15 @@
Table 1: Both "Combined-Tabnet" and "CombinedTabnet" are variations of the following: (*) The CombinedTabnet dataset is the processed combination of PubTabNet and Fintabnet. (**) The combined dataset is the processed combination of PubTabNet, Fintabnet and TableBank.
one adopts a colorful appearance with high contrast and the last one contains tables with sparse content. Lastly, we have combined all synthetic datasets into one big unified synthetic dataset of 600k examples. Tab. 1 summarizes the various attributes of the datasets. -4. The TableFormer model +4. The TableFormer model Given the image of a table, TableFormer is able to predict: 1) a sequence of tokens that represent the structure of a table, and 2) a bounding box coupled to a subset of those tokens. The conversion of an image into a sequence of tokens is a well-known task [35, 16]. While attention is often used as an implicit method to associate each token of the sequence with a position in the original image, an explicit association between the individual table-cells and the image bounding boxes is also required. -4.1. Model architecture. +4.1. Model architecture. We now describe in detail the proposed method, which is composed of three main components, see Fig. 4. Our CNN Backbone Network encodes the input as a feature vector of predefined length. The input feature vector of the encoded image is passed to the Structure Decoder to produce a sequence of HTML tags that represent the structure of the table. With each prediction of an HTML standard data cell (' < td > ') the hidden state of that cell is passed to the Cell BBox Decoder. As for spanning cells, such as row or column span, the tag is broken down to ' < ', 'rowspan=' or 'colspan=', with the number of spanning cells (attribute), and ' > '. The hidden state attached to ' < ' is passed to the Cell BBox Decoder. A shared feed forward network (FFN) receives the hidden states from the Structure Decoder, to provide the final detection predictions of the bounding box coordinates and their classification. CNN Backbone Network. A ResNet-18 CNN is the backbone that receives the table image and encodes it as a vector of predefined length. The network has been modified by removing the linear and pooling layer, as we are not per- -Figure 3: TableFormer takes in an image of the PDF and creates bounding box and HTML structure predictions that are synchronized. The bounding boxes grabs the content from the PDF and inserts it in the structure.
Figure 3: TableFormer takes in an image of the PDF and creates bounding box and HTML structure predictions that are synchronized. The bounding boxes grabs the content from the PDF and inserts it in the structure.
-Figure 4: Given an input image of a table, the Encoder produces fixed-length features that represent the input image. The features are then passed to both the Structure Decoder and Cell BBox Decoder . During training, the Structure Decoder receives 'tokenized tags' of the HTML code that represent the table structure. Afterwards, a transformer encoder and decoder architecture is employed to produce features that are received by a linear layer, and the Cell BBox Decoder. The linear layer is applied to the features to predict the tags. Simultaneously, the Cell BBox Decoder selects features referring to the data cells (' < td > ', ' < ') and passes them through an attention network, an MLP, and a linear layer to predict the bounding boxes.
Figure 4: Given an input image of a table, the Encoder produces fixed-length features that represent the input image. The features are then passed to both the Structure Decoder and Cell BBox Decoder . During training, the Structure Decoder receives 'tokenized tags' of the HTML code that represent the table structure. Afterwards, a transformer encoder and decoder architecture is employed to produce features that are received by a linear layer, and the Cell BBox Decoder. The linear layer is applied to the features to predict the tags. Simultaneously, the Cell BBox Decoder selects features referring to the data cells (' < td > ', ' < ') and passes them through an attention network, an MLP, and a linear layer to predict the bounding boxes. @@ -103,8 +99,8 @@ The loss used to train the TableFormer can be defined as following: l$_{box}$ = λ$_{iou}$l$_{iou}$ + λ$_{l}$$_{1}$ l = λl$_{s}$ + (1 - λ ) l$_{box}$ (1) where λ ∈ [0, 1], and λ$_{iou}$, λ$_{l}$$_{1}$ ∈$_{R}$ are hyper-parameters. -5. Experimental Results -5.1. Implementation Details +5. Experimental Results +5.1. Implementation Details TableFormer uses ResNet-18 as the CNN Backbone Network . The input images are resized to 448*448 pixels and the feature map has a dimension of 28*28. Additionally, we enforce the following input constraints: Image width and height ≤ 1024 pixels Structural tags length ≤ 512 tokens. (2) Although input constraints are used also by other methods, such as EDD, ours are less restrictive due to the improved @@ -112,16 +108,15 @@ The Transformer Encoder consists of two "Transformer Encoder Layers", with an input feature size of 512, feed forward network of 1024, and 4 attention heads. As for the Transformer Decoder it is composed of four "Transformer Decoder Layers" with similar input and output dimensions as the "Transformer Encoder Layers". Even though our model uses fewer layers and heads than the default implementation parameters, our extensive experimentation has proved this setup to be more suitable for table images. We attribute this finding to the inherent design of table images, which contain mostly lines and text, unlike the more elaborate content present in other scopes (e.g. the COCO dataset). Moreover, we have added ResNet blocks to the inputs of the Structure Decoder and Cell BBox Decoder. This prevents a decoder having a stronger influence over the learned weights which would damage the other prediction task (structure vs bounding boxes), but learn task specific weights instead. Lastly our dropout layers are set to 0.5. For training, TableFormer is trained with 3 Adam optimizers, each one for the CNN Backbone Network , Structure Decoder , and Cell BBox Decoder . Taking the PubTabNet as an example for our parameter set up, the initializing learning rate is 0.001 for 12 epochs with a batch size of 24, and λ set to 0.5. Afterwards, we reduce the learning rate to 0.0001, the batch size to 18 and train for 12 more epochs or convergence. TableFormer is implemented with PyTorch and Torchvision libraries [22]. To speed up the inference, the image undergoes a single forward pass through the CNN Backbone Network and transformer encoder. This eliminates the overhead of generating the same features for each decoding step. Similarly, we employ a 'caching' technique to preform faster autoregressive decoding. This is achieved by storing the features of decoded tokens so we can reuse them for each time step. Therefore, we only compute the attention for each new tag. -5.2. Generalization +5.2. Generalization TableFormer is evaluated on three major publicly available datasets of different nature to prove the generalization and effectiveness of our model. The datasets used for evaluation are the PubTabNet, FinTabNet and TableBank which stem from the scientific, financial and general domains respectively. We also share our baseline results on the challenging SynthTabNet dataset. Throughout our experiments, the same parameters stated in Sec. 5.1 are utilized. -5.3. Datasets and Metrics +5.3. Datasets and Metrics The Tree-Edit-Distance-Based Similarity (TEDS) metric was introduced in [37]. It represents the prediction, and ground-truth as a tree structure of HTML tags. This similarity is calculated as: TEDS ( T$_{a}$, T$_{b}$ ) = 1 - EditDist ( T$_{a}$, T$_{b}$ ) max ( | T$_{a}$ | , | T$_{b}$ | ) (3) where T$_{a}$ and T$_{b}$ represent tables in tree structure HTML format. EditDist denotes the tree-edit distance, and | T | represents the number of nodes in T . -5.4. Quantitative Analysis +5.4. Quantitative Analysis Structure. As shown in Tab. 2, TableFormer outperforms all SOTA methods across different datasets by a large margin for predicting the table structure from an image. All the more, our model outperforms pre-trained methods. During the evaluation we do not apply any table filtering. We also provide our baseline results on the SynthTabNet dataset. It has been observed that large tables (e.g. tables that occupy half of the page or more) yield poor predictions. We attribute this issue to the image resizing during the preprocessing step, that produces downsampled images with indistinguishable features. This problem can be addressed by treating such big tables with a separate model which accepts a large input image size. -Table 2: Structure results on PubTabNet (PTN), FinTabNet (FTN), TableBank (TB) and SynthTabNet (STN). @@ -140,7 +135,6 @@ FT: Model was trained on PubTabNet then finetuned.Cell Detection. Like any object detector, our Cell BBox Detector provides bounding boxes that can be improved with post-processing during inference. We make use of the grid-like structure of tables to refine the predictions. A detailed explanation on the post-processing is available in the supplementary material. As shown in Tab. 3, we evaluateour Cell BBox Decoder accuracy for cells with a class label of 'content' only using the PASCAL VOC mAP metric for pre-processing and post-processing. Note that we do not have post-processing results for SynthTabNet as images are only provided. To compare the performance of our proposed approach, we've integrated TableFormer's Cell BBox Decoder into EDD architecture. As mentioned previously, the Structure Decoder provides the Cell BBox Decoder with the features needed to predict the bounding box predictions. Therefore, the accuracy of the Structure Decoder directly influences the accuracy of the Cell BBox Decoder . If the Structure Decoder predicts an extra column, this will result in an extra column of predicted bounding boxes. -
Table 2: Structure results on PubTabNet (PTN), FinTabNet (FTN), TableBank (TB) and SynthTabNet (STN). Table 3: Cell Bounding Box detection results on PubTabNet, and FinTabNet. PP: Post-processing.
@@ -150,7 +144,6 @@ TableFormerSynthTabNet87.7-
Table 3: Cell Bounding Box detection results on PubTabNet, and FinTabNet. PP: Post-processing.
Cell Content. In this section, we evaluate the entire pipeline of recovering a table with content. Here we put our approach to test by capitalizing on extracting content from the PDF cells rather than decoding from images. Tab. 4 shows the TEDs score of HTML code representing the structure of the table along with the content inserted in the data cell and compared with the ground-truth. Our method achieved a 5.3% increase over the state-of-the-art, and commercial solutions. We believe our scores would be higher if the HTML ground-truth matched the extracted PDF cell content. Unfortunately, there are small discrepancies such as spacings around words or special characters with various unicode representations. -Table 4: Results of structure with content retrieved using cell detection on PubTabNet. In all cases the input is PDF documents with cropped tables. @@ -183,7 +176,6 @@ WWW から収集した論文1077334147969452946511122955
Table 4: Results of structure with content retrieved using cell detection on PubTabNet. In all cases the input is PDF documents with cropped tables.
-Text is aligned to match original for ease of viewing @@ -195,7 +187,6 @@ Canceled or forfeited(0. 1 )-102.0192.18Nonvested on December 311.00.3104.85 $$ 104.51
Text is aligned to match original for ease of viewing
-Figure 5: One of the benefits of TableFormer is that it is language agnostic, as an example, the left part of the illustration demonstrates TableFormer predictions on previously unseen language (Japanese). Additionally, we see that TableFormer is robust to variability in style and content, right side of the illustration shows the example of the TableFormer prediction from the FinTabNet dataset.
Figure 5: One of the benefits of TableFormer is that it is language agnostic, as an example, the left part of the illustration demonstrates TableFormer predictions on previously unseen language (Japanese). Additionally, we see that TableFormer is robust to variability in style and content, right side of the illustration shows the example of the TableFormer prediction from the FinTabNet dataset. @@ -203,20 +194,22 @@
-Figure 6: An example of TableFormer predictions (bounding boxes and structure) from generated SynthTabNet table.
Figure 6: An example of TableFormer predictions (bounding boxes and structure) from generated SynthTabNet table.
-5.5. Qualitative Analysis +5.5. Qualitative Analysis We showcase several visualizations for the different components of our network on various "complex" tables within datasets presented in this work in Fig. 5 and Fig. 6 As it is shown, our model is able to predict bounding boxes for all table cells, even for the empty ones. Additionally, our post-processing techniques can extract the cell content by matching the predicted bounding boxes to the PDF cells based on their overlap and spatial proximity. The left part of Fig. 5 demonstrates also the adaptability of our method to any language, as it can successfully extract Japanese text, although the training set contains only English content. We provide more visualizations including the intermediate steps in the supplementary material. Overall these illustrations justify the versatility of our method across a diverse range of table appearances and content type. -6. Future Work & Conclusion +6. Future Work & Conclusion In this paper, we presented TableFormer an end-to-end transformer based approach to predict table structures and bounding boxes of cells from an image. This approach enables us to recreate the table structure, and extract the cell content from PDF or OCR by using bounding boxes. Additionally, it provides the versatility required in real-world scenarios when dealing with various types of PDF documents, and languages. Furthermore, our method outperforms all state-of-the-arts with a wide margin. Finally, we introduce "SynthTabNet" a challenging synthetically generated dataset that reinforces missing characteristics from other datasets. -References +References + [1] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to- +
+ end object detection with transformers. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision - ECCV 2020 , pages 213-229, Cham, 2020. Springer International Publishing. 5 [2] Zewen Chi, Heyan Huang, Heng-Da Xu, Houjin Yu, Wanxuan Yin, and Xian-Ling Mao. Complicated table structure recognition. arXiv preprint arXiv:1908.04729 , 2019. 3 [3] Bertrand Couasnon and Aurelie Lemaitre. Recognition of Tables and Forms , pages 647-677. Springer London, London, 2014. 2 @@ -232,6 +225,8 @@ [13] Thotreingam Kasar, Philippine Barlas, Sebastien Adam, Cl'ement Chatelain, and Thierry Paquet. Learning to detect tables in scanned document images using line information. In 2013 12th International Conference on Document Analysis and Recognition , pages 1185-1189. IEEE, 2013. 2 [14] Pratik Kayal, Mrinal Anand, Harsh Desai, and Mayank Singh. Icdar 2021 competition on scientific table image recognition to latex, 2021. 2 [15] Harold W Kuhn. The hungarian method for the assignment problem. Naval research logistics quarterly , 2(1-2):83-97, 1955. 6 + + [16] Girish Kulkarni, Visruth Premraj, Vicente Ordonez, Sagnik Dhar, Siming Li, Yejin Choi, Alexander C. Berg, and Tamara L. Berg. Babytalk: Understanding and generating simple image descriptions. IEEE Transactions on Pattern Analysis and Machine Intelligence , 35(12):2891-2903, 2013. 4 [17] Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, Ming Zhou, and Zhoujun Li. Tablebank: A benchmark dataset for table detection and recognition, 2019. 2, 3 [18] Yiren Li, Zheng Huang, Junchi Yan, Yi Zhou, Fan Ye, and Xianhui Liu. Gfte: Graph-based financial table extraction. In Alberto Del Bimbo, Rita Cucchiara, Stan Sclaroff, Giovanni Maria Farinella, Tao Mei, Marco Bertini, Hugo Jair Escalante, and Roberto Vezzani, editors, Pattern Recognition. ICPR International Workshops and Challenges , pages 644-658, Cham, 2021. Springer International Publishing. 2, 3 @@ -242,7 +237,9 @@ [23] Devashish Prasad, Ayan Gadpal, Kshitij Kapadni, Manish Visave, and Kavita Sultanpure. Cascadetabnet: An approach for end to end table detection and structure recognition from image-based documents. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops , pages 572-573, 2020. 1 [24] Shah Rukh Qasim, Hassan Mahmood, and Faisal Shafait. Rethinking table recognition using graph neural networks. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 142-147. IEEE, 2019. 3 [25] Hamid Rezatofighi, Nathan Tsoi, JunYoung Gwak, Amir Sadeghian, Ian Reid, and Silvio Savarese. Generalized intersection over union: A metric and a loss for bounding box regression. In Proceedings of the IEEE/CVF Conference on + Computer Vision and Pattern Recognition , pages 658-666, 2019. 6 + [26] Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 11621167, 2017. 1 [27] Sebastian Schreiber, Stefan Agne, Ivo Wolf, Andreas Dengel, and Sheraz Ahmed. Deepdesrt: Deep learning for detection and structure recognition of tables in document images. In 2017 14th IAPR international conference on document analysis and recognition (ICDAR) , volume 1, pages 1162-1167. IEEE, 2017. 3 [28] Faisal Shafait and Ray Smith. Table detection in heterogeneous documents. In Proceedings of the 9th IAPR International Workshop on Document Analysis Systems , pages 6572, 2010. 2 @@ -255,77 +252,86 @@ [35] Quanzeng You, Hailin Jin, Zhaowen Wang, Chen Fang, and Jiebo Luo. Image captioning with semantic attention. In Proceedings of the IEEE conference on computer vision and pattern recognition , pages 4651-4659, 2016. 4 [36] Xinyi Zheng, Doug Burdick, Lucian Popa, Peter Zhong, and Nancy Xin Ru Wang. Global table extractor (gte): A framework for joint table identification and cell structure recognition using visual context. Winter Conference for Applications in Computer Vision (WACV) , 2021. 2, 3 [37] Xu Zhong, Elaheh ShafieiBavani, and Antonio Jimeno Yepes. Image-based table recognition: Data, model, + + and evaluation. In Andrea Vedaldi, Horst Bischof, Thomas Brox, and Jan-Michael Frahm, editors, Computer Vision ECCV 2020 , pages 564-580, Cham, 2020. Springer International Publishing. 2, 3, 7 [38] Xu Zhong, Jianbin Tang, and Antonio Jimeno Yepes. Publaynet: Largest dataset ever for document layout analysis. In 2019 International Conference on Document Analysis and Recognition (ICDAR) , pages 1015-1022, 2019. 1 -TableFormer: Table Structure Understanding with Transformers Supplementary Material -1. Details on the datasets -1.1. Data preparation + +TableFormer: Table Structure Understanding with Transformers Supplementary Material +1. Details on the datasets +1.1. Data preparation As a first step of our data preparation process, we have calculated statistics over the datasets across the following dimensions: (1) table size measured in the number of rows and columns, (2) complexity of the table, (3) strictness of the provided HTML structure and (4) completeness (i.e. no omitted bounding boxes). A table is considered to be simple if it does not contain row spans or column spans. Additionally, a table has a strict HTML structure if every row has the same number of columns after taking into account any row or column spans. Therefore a strict HTML structure looks always rectangular. However, HTML is a lenient encoding format, i.e. tables with rows of different sizes might still be regarded as correct due to implicit display rules. These implicit rules leave room for ambiguity, which we want to avoid. As such, we prefer to have "strict" tables, i.e. tables where every row has exactly the same length. We have developed a technique that tries to derive a missing bounding box out of its neighbors. As a first step, we use the annotation data to generate the most fine-grained grid that covers the table structure. In case of strict HTML tables, all grid squares are associated with some table cell and in the presence of table spans a cell extends across multiple grid squares. When enough bounding boxes are known for a rectangular table, it is possible to compute the geometrical border lines between the grid rows and columns. Eventually this information is used to generate the missing bounding boxes. Additionally, the existence of unused grid squares indicates that the table rows have unequal number of columns and the overall structure is non-strict. The generation of missing bounding boxes for non-strict HTML tables is ambiguous and therefore quite challenging. Thus, we have decided to simply discard those tables. In case of PubTabNet we have computed missing bounding boxes for 48% of the simple and 69% of the complex tables. Regarding FinTabNet, 68% of the simple and 98% of the complex tables require the generation of bounding boxes. Figure 7 illustrates the distribution of the tables across different dimensions per dataset. -1.2. Synthetic datasets +1.2. Synthetic datasets Aiming to train and evaluate our models in a broader spectrum of table data we have synthesized four types of datasets. Each one contains tables with different appear- ances in regard to their size, structure, style and content. Every synthetic dataset contains 150k examples, summing up to 600k synthetic examples. All datasets are divided into Train, Test and Val splits (80%, 10%, 10%). The process of generating a synthetic dataset can be decomposed into the following steps: + 1. Prepare styling and content templates: The styling templates have been manually designed and organized into groups of scope specific appearances (e.g. financial data, marketing data, etc.) Additionally, we have prepared curated collections of content templates by extracting the most frequently used terms out of non-synthetic datasets (e.g. PubTabNet, FinTabNet, etc.). 2. Generate table structures: The structure of each synthetic dataset assumes a horizontal table header which potentially spans over multiple rows and a table body that may contain a combination of row spans and column spans. However, spans are not allowed to cross the header - body boundary. The table structure is described by the parameters: Total number of table rows and columns, number of header rows, type of spans (header only spans, row only spans, column only spans, both row and column spans), maximum span size and the ratio of the table area covered by spans. 3. Generate content: Based on the dataset theme , a set of suitable content templates is chosen first. Then, this content can be combined with purely random text to produce the synthetic content. 4. Apply styling templates: Depending on the domain of the synthetic dataset, a set of styling templates is first manually selected. Then, a style is randomly selected to format the appearance of the synthesized table. 5. Render the complete tables: The synthetic table is finally rendered by a web browser engine to generate the bounding boxes for each table cell. A batching technique is utilized to optimize the runtime overhead of the rendering process. -2. Prediction post-processing for PDF documents + +2. Prediction post-processing for PDF documents Although TableFormer can predict the table structure and the bounding boxes for tables recognized inside PDF documents, this is not enough when a full reconstruction of the original table is required. This happens mainly due the following reasons: -Figure 7: Distribution of the tables across different dimensions per dataset. Simple vs complex tables per dataset and split, strict vs non strict html structures per dataset and table complexity, missing bboxes per dataset and table complexity.
Figure 7: Distribution of the tables across different dimensions per dataset. Simple vs complex tables per dataset and split, strict vs non strict html structures per dataset and table complexity, missing bboxes per dataset and table complexity.
+ · TableFormer output does not include the table cell content. · There are occasional inaccuracies in the predictions of the bounding boxes. + However, it is possible to mitigate those limitations by combining the TableFormer predictions with the information already present inside a programmatic PDF document. More specifically, PDF documents can be seen as a sequence of PDF cells where each cell is described by its content and bounding box. If we are able to associate the PDF cells with the predicted table cells, we can directly link the PDF cell content to the table cell structure and use the PDF bounding boxes to correct misalignments in the predicted table cell bounding boxes. Here is a step-by-step description of the prediction postprocessing: + 1. Get the minimal grid dimensions - number of rows and columns for the predicted table structure. This represents the most granular grid for the underlying table structure. 2. Generate pair-wise matches between the bounding boxes of the PDF cells and the predicted cells. The Intersection Over Union (IOU) metric is used to evaluate the quality of the matches. 3. Use a carefully selected IOU threshold to designate the matches as "good" ones and "bad" ones. 3.a. If all IOU scores in a column are below the threshold, discard all predictions (structure and bounding boxes) for that column. 4. Find the best-fitting content alignment for the predicted cells with good IOU per each column. The alignment of the column can be identified by the following formula: + alignment = arg min c { D$_{c}$ } D$_{c}$ = max { x$_{c}$ } - min { x$_{c}$ } (4) where c is one of { left, centroid, right } and x$_{c}$ is the xcoordinate for the corresponding point. + 5. Use the alignment computed in step 4, to compute the median x -coordinate for all table columns and the me- + dian cell size for all table cells. The usage of median during the computations, helps to eliminate outliers caused by occasional column spans which are usually wider than the normal. + 6. Snap all cells with bad IOU to their corresponding median x -coordinates and cell sizes. 7. Generate a new set of pair-wise matches between the corrected bounding boxes and PDF cells. This time use a modified version of the IOU metric, where the area of the intersection between the predicted and PDF cells is divided by the PDF cell area. In case there are multiple matches for the same PDF cell, the prediction with the higher score is preferred. This covers the cases where the PDF cells are smaller than the area of predicted or corrected prediction cells. 8. In some rare occasions, we have noticed that TableFormer can confuse a single column as two. When the postprocessing steps are applied, this results with two predicted columns pointing to the same PDF column. In such case we must de-duplicate the columns according to highest total column intersection score. 9. Pick up the remaining orphan cells. There could be cases, when after applying all the previous post-processing steps, some PDF cells could still remain without any match to predicted cells. However, it is still possible to deduce the correct matching for an orphan PDF cell by mapping its bounding box on the geometry of the grid. This mapping decides if the content of the orphan cell will be appended to an already matched table cell, or a new table cell should be created to match with the orphan. + 9a. Compute the top and bottom boundary of the horizontal band for each grid row (min/max y coordinates per row). + 9b. Intersect the orphan's bounding box with the row bands, and map the cell to the closest grid row. 9c. Compute the left and right boundary of the vertical band for each grid column (min/max x coordinates per column). 9d. Intersect the orphan's bounding box with the column bands, and map the cell to the closest grid column. 9e. If the table cell under the identified row and column is not empty, extend its content with the content of the or- + phan cell. 9f. Otherwise create a new structural cell and match it wit the orphan cell. Aditional images with examples of TableFormer predictions and post-processing can be found below. Figure 8: Example of a table with multi-line header. -Figure 9: Example of a table with big empty distance between cells.
Figure 9: Example of a table with big empty distance between cells.
-Figure 10: Example of a complex table with empty cells.
Figure 10: Example of a complex table with empty cells.
-Figure 14: Example with multi-line text.
Figure 14: Example with multi-line text.
-Figure 11: Simple table with different style and empty cells.
Figure 11: Simple table with different style and empty cells.
-Figure 12: Simple table predictions and post processing.
Figure 12: Simple table predictions and post processing. @@ -336,12 +342,10 @@
-Figure 13: Table predictions example on colorful table.
Figure 13: Table predictions example on colorful table.
-Figure 16: Example of how post-processing helps to restore mis-aligned bounding boxes prediction artifact.
Figure 16: Example of how post-processing helps to restore mis-aligned bounding boxes prediction artifact. @@ -349,12 +353,10 @@
-Figure 15: Example with triangular table.
Figure 15: Example with triangular table.
-Figure 17: Example of long table. End-to-end example from initial PDF cells to prediction of bounding boxes, post processing and prediction of structure.
Figure 17: Example of long table. End-to-end example from initial PDF cells to prediction of bounding boxes, post processing and prediction of structure. diff --git a/tests/data/groundtruth/docling_v2/2206.01062.doctags.txt b/tests/data/groundtruth/docling_v2/2206.01062.doctags.txt index 9280218b..285e4731 100644 --- a/tests/data/groundtruth/docling_v2/2206.01062.doctags.txt +++ b/tests/data/groundtruth/docling_v2/2206.01062.doctags.txt @@ -1,18 +1,17 @@ -DocLayNet: A Large Human-Annotated Dataset for Document-Layout Analysis +DocLayNet: A Large Human-Annotated Dataset for Document-Layout Analysis Birgit Pfitzmann IBM Research Rueschlikon, Switzerland bpf@zurich.ibm.com Christoph Auer IBM Research Rueschlikon, Switzerland cau@zurich.ibm.com Michele Dolfi IBM Research Rueschlikon, Switzerland dol@zurich.ibm.com Ahmed S. Nassar IBM Research Rueschlikon, Switzerland ahn@zurich.ibm.com Peter Staar IBM Research Rueschlikon, Switzerland taa@zurich.ibm.com -ABSTRACT +ABSTRACT Accurate document layout analysis is a key requirement for highquality PDF document conversion. With the recent availability of public, large ground-truth datasets such as PubLayNet and DocBank, deep-learning models have proven to be very effective at layout detection and segmentation. While these datasets are of adequate size to train such models, they severely lack in layout variability since they are sourced from scientific article repositories such as PubMed and arXiv only. Consequently, the accuracy of the layout segmentation drops significantly when these models are applied on more challenging and diverse layouts. In this paper, we present DocLayNet , a new, publicly available, document-layout annotation dataset in COCO format. It contains 80863 manually annotated pages from diverse data sources to represent a wide variability in layouts. For each PDF page, the layout annotations provide labelled bounding-boxes with a choice of 11 distinct classes. DocLayNet also provides a subset of double- and triple-annotated pages to determine the inter-annotator agreement. In multiple experiments, we provide baseline accuracy scores (in mAP) for a set of popular object detection models. We also demonstrate that these models fall approximately 10% behind the inter-annotator agreement. Furthermore, we provide evidence that DocLayNet is of sufficient size. Lastly, we compare models trained on PubLayNet, DocBank and DocLayNet, showing that layout predictions of the DocLayNettrained models are more robust and thus the preferred choice for general-purpose document-layout analysis. -CCS CONCEPTS +CCS CONCEPTS · Information systems → Document structure ; · Applied computing → Document analysis ; · Computing methodologies → Machine learning ; Computer vision ; Object detection ; Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s). KDD '22, August 14-18, 2022, Washington, DC, USA © 2022 Copyright held by the owner/author(s). ACM ISBN 978-1-4503-9385-0/22/08. https://doi.org/10.1145/3534678.3539043 13 USING THE VERTICAL TUBE MODELS AY11230/11234 1. The vertical tube can be used for instructional viewing or to photograph the image with a digital camera or a micro TV unit 2. Loosen the retention screw, then rotate the adjustment ring to change the length of the vertical tube. 3. Make sure that both the images in OPERATION ( cont. ) SELECTING OBJECTIVE MAGNIFICATION 1. There are two objectives. The lower magnification objective has a greater depth of field and view. 2. In order to observe the specimen easily use the lower magnification objective first. Then, by rotating the case, the magnification can be changed. CHANGING THE INTERPUPILLARY DISTANCE 1. The distance between the observer's pupils is the interpupillary distance. 2. To adjust the interpupillary distance rotate the prism caps until both eyes coincide with the image in the eyepiece. FOCUSING 1. Remove the lens protective cover. 2. Place the specimen on the working stage. 3. Focus the specimen with the left eye first while turning the focus knob until the image appears clear and sharp. 4. Rotate the right eyepiece ring until the images in each eyepiece coincide and are sharp and clear. CHANGING THE BULB 1. Disconnect the power cord. 2. When the bulb is cool, remove the oblique illuminator cap and remove the halogen bulb with cap. 3. Replace with a new halogen bulb. 4. Open the window in the base plate and replace the halogen lamp or fluorescent lamp of transmitted illuminator. FOCUSING 1. Turn the focusing knob away or toward you until a clear image is viewed. 2. If the image is unclear, adjust the height of the elevator up or down, then turn the focusing knob again. ZOOM MAGNIFICATION 1. Turn the zoom magnification knob to the desired magnification and field of view. 2. In most situations, it is recommended that you focus at the lowest magnification, then move to a higher magnification and re-focus as necessary. 3. If the image is not clear to both eyes at the same time, the diopter ring may need adjustment. DIOPTER RING ADJUSTMENT 1. To adjust the eyepiece for viewing with or without eyeglasses and for differences in acuity between the right and left eyes, follow the following steps: a. Observe an image through the left eyepiece and bring a specific point into focus using the focus knob. b. By turning the diopter ring adjustment for the left eyepiece, bring the same point into sharp focus. c.Then bring the same point into focus through the right eyepiece by turning the right diopter ring. d.With more than one viewer, each viewer should note their own diopter ring position for the left and right eyepieces, then before viewing set the diopter ring adjustments to that setting. CHANGING THE BULB 1. Disconnect the power cord from the electrical outlet. 2. When the bulb is cool, remove the oblique illuminator cap and remove the halogen bulb with cap. 3. Replace with a new halogen bulb. 4. Open the window in the base plate and replace the halogen lamp or fluorescent lamp of transmitted illuminator. Model AY11230 Model AY11234 -Figure 1: Four examples of complex page layouts across different document categories
Figure 1: Four examples of complex page layouts across different document categories @@ -28,29 +27,32 @@ $ S S O \ ( [ S D Q G H G & L U F O L Q J $ S S U R D F K 0 D Q H X Y H U L Q J $ L U V S D F H 5 D G L X V Table $ S S O \ 6 W D Q G D U G & L U F O L Q J $ S S U R D F K 0 D Q H X Y H U L Q J 5 D G L X V 7 D E O H AIRPORT SKETCH The airport sketch is a depiction of the airport with emphasis on runway pattern and related information, positioned in either the lower left or lower right corner of the chart to aid pilot recognition of the airport from the air and to provide some information to aid on ground navigation of the airport. The runways are drawn to scale and oriented to true north. Runway dimensions (length and width) are shown for all active runways. Runway(s) are depicted based on what type and construction of the runway. Hard Surface Other Than Hard Surface Metal Surface Closed Runway Under Construction Stopways, Taxiways, Parking Areas Displaced Threshold Closed Pavement Water Runway Taxiways and aprons are shaded grey. Other runway features that may be shown are runway numbers, runway dimensions, runway slope, arresting gear, and displaced threshold. 2 W K H U L Q I R U P D W L R Q F R Q F H U Q L Q J O L J K W L Q J ¿ Q D O D S S U R D F K E H D U L Q J V D L U S R U W E H D F R Q R E V W D F O H V F R Q W U R O W R Z H U 1 $ 9 $ , ' V K H O L -pads may also be shown. $ L U S R U W ( O H Y D W L R Q D Q G 7 R X F K G R Z Q = R Q H ( O H Y D W L R Q The airport elevation is shown enclosed within a box in the upper left corner of the sketch box and the touchdown zone elevation (TDZE) is shown in the upper right corner of the sketch box. The airport elevation is the highest point of an D L U S R U W ¶ V X V D E O H U X Q Z D \ V P H D V X U H G L Q I H H W I U R P P H D Q V H D O H Y H O 7 K H 7 ' = ( L V W K H K L J K H V W H O H Y D W L R Q L Q W K H ¿ U V W I H H W R I the landing surface. Circling only approaches will not show a TDZE. FAA Chart Users' Guide - Terminal Procedures Publication (TPP) - Terms 114 -KEYWORDS +KEYWORDS PDF document conversion, layout segmentation, object-detection, data set, Machine Learning -ACM Reference Format: +ACM Reference Format: Birgit Pfitzmann, Christoph Auer, Michele Dolfi, Ahmed S. Nassar, and Peter Staar. 2022. DocLayNet: A Large Human-Annotated Dataset for DocumentLayout Analysis. In Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD '22), August 14-18, 2022, Washington, DC, USA. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/ 3534678.3539043 -1 INTRODUCTION +1 INTRODUCTION Despite the substantial improvements achieved with machine-learning (ML) approaches and deep neural networks in recent years, document conversion remains a challenging problem, as demonstrated by the numerous public competitions held on this topic [1-4]. The challenge originates from the huge variability in PDF documents regarding layout, language and formats (scanned, programmatic or a combination of both). Engineering a single ML model that can be applied on all types of documents and provides high-quality layout segmentation remains to this day extremely challenging [5]. To highlight the variability in document layouts, we show a few example documents from the DocLayNet dataset in Figure 1. A key problem in the process of document conversion is to understand the structure of a single document page, i.e. which segments of text should be grouped together in a unit. To train models for this task, there are currently two large datasets available to the community, PubLayNet [6] and DocBank [7]. They were introduced in 2019 and 2020 respectively and significantly accelerated the implementation of layout detection and segmentation models due to their sizes of 300K and 500K ground-truth pages. These sizes were achieved by leveraging an automation approach. The benefit of automated ground-truth generation is obvious: one can generate large ground-truth datasets at virtually no cost. However, the automation introduces a constraint on the variability in the dataset, because corresponding structured source data must be available. PubLayNet and DocBank were both generated from scientific document repositories (PubMed and arXiv), which provide XML or L A T E X sources. Those scientific documents present a limited variability in their layouts, because they are typeset in uniform templates provided by the publishers. Obviously, documents such as technical manuals, annual company reports, legal text, government tenders, etc. have very different and partially unique layouts. As a consequence, the layout predictions obtained from models trained on PubLayNet or DocBank is very reasonable when applied on scientific documents. However, for more artistic or free-style layouts, we see sub-par prediction quality from these models, which we demonstrate in Section 5. In this paper, we present the DocLayNet dataset. It provides pageby-page layout annotation ground-truth using bounding-boxes for 11 distinct class labels on 80863 unique document pages, of which a fraction carry double- or triple-annotations. DocLayNet is similar in spirit to PubLayNet and DocBank and will likewise be made available to the public 1 in order to stimulate the document-layout analysis community. It distinguishes itself in the following aspects: + (1) Human Annotation : In contrast to PubLayNet and DocBank, we relied on human annotation instead of automation approaches to generate the data set. (2) Large Layout Variability : We include diverse and complex layouts from a large variety of public sources. (3) Detailed Label Set : We define 11 class labels to distinguish layout features in high detail. PubLayNet provides 5 labels; DocBank provides 13, although not a superset of ours. (4) Redundant Annotations : A fraction of the pages in the DocLayNet data set carry more than one human annotation. + This enables experimentation with annotation uncertainty and quality control analysis. + (5) Pre-defined Train-, Test- & Validation-set : Like DocBank, we provide fixed train-, test- & validation-sets to ensure proportional representation of the class-labels. Further, we prevent leakage of unique layouts across sets, which has a large effect on model accuracy scores. + All aspects outlined above are detailed in Section 3. In Section 4, we will elaborate on how we designed and executed this large-scale human annotation campaign. We will also share key insights and lessons learned that might prove helpful for other parties planning to set up annotation campaigns. In Section 5, we will present baseline accuracy numbers for a variety of object detection methods (Faster R-CNN, Mask R-CNN and YOLOv5) trained on DocLayNet. We further show how the model performance is impacted by varying the DocLayNet dataset size, reducing the label set and modifying the train/test-split. Last but not least, we compare the performance of models trained on PubLayNet, DocBank and DocLayNet and demonstrate that a model trained on DocLayNet provides overall more robust layout recovery. -2 RELATED WORK +2 RELATED WORK While early approaches in document-layout analysis used rulebased algorithms and heuristics [8], the problem is lately addressed with deep learning methods. The most common approach is to leverage object detection models [9-15]. In the last decade, the accuracy and speed of these models has increased dramatically. Furthermore, most state-of-the-art object detection methods can be trained and applied with very little work, thanks to a standardisation effort of the ground-truth data format [16] and common deep-learning frameworks [17]. Reference data sets such as PubLayNet [6] and DocBank provide their data in the commonly accepted COCO format [16]. Lately, new types of ML models for document-layout analysis have emerged in the community [18-21]. These models do not approach the problem of layout analysis purely based on an image representation of the page, as computer vision methods do. Instead, they combine the text tokens and image representation of a page in order to obtain a segmentation. While the reported accuracies appear to be promising, a broadly accepted data format which links geometric and textual features has yet to establish. -3 THE DOCLAYNET DATASET +3 THE DOCLAYNET DATASET DocLayNet contains 80863 PDF pages. Among these, 7059 carry two instances of human annotations, and 1591 carry three. This amounts to 91104 total annotation instances. The annotations provide layout information in the shape of labeled, rectangular boundingboxes. We define 11 distinct labels for layout features, namely Caption , Footnote , Formula , List-item , Page-footer , Page-header , Picture , Section-header , Table , Text , and Title . Our reasoning for picking this particular label set is detailed in Section 4. In addition to open intellectual property constraints for the source documents, we required that the documents in DocLayNet adhere to a few conditions. Firstly, we kept scanned documents -Figure 2: Distribution of DocLayNet pages across document categories.
Figure 2: Distribution of DocLayNet pages across document categories. @@ -62,9 +64,8 @@ Table 1 shows the overall frequency and distribution of the labels among the different sets. Importantly, we ensure that subsets are only split on full-document boundaries. This avoids that pages of the same document are spread over train, test and validation set, which can give an undesired evaluation advantage to models and lead to overestimation of their prediction accuracy. We will show the impact of this decision in Section 5. In order to accommodate the different types of models currently in use by the community, we provide DocLayNet in an augmented COCO format [16]. This entails the standard COCO ground-truth file (in JSON format) with the associated page images (in PNG format, 1025 × 1025 pixels). Furthermore, custom fields have been added to each COCO record to specify document category, original document filename and page number. In addition, we also provide the original PDF pages, as well as sidecar files containing parsed PDF text and text-cell coordinates (in JSON). All additional files are linked to the primary page images by their matching filenames. Despite being cost-intense and far less scalable than automation, human annotation has several benefits over automated groundtruth generation. The first and most obvious reason to leverage human annotations is the freedom to annotate any type of document without requiring a programmatic source. For most PDF documents, the original source document is not available. The latter is not a hard constraint with human annotation, but it is for automated methods. A second reason to use human annotations is that the latter usually provide a more natural interpretation of the page layout. The human-interpreted layout can significantly deviate from the programmatic layout used in typesetting. For example, "invisible" tables might be used solely for aligning text paragraphs on columns. Such typesetting tricks might be interpreted by automated methods incorrectly as an actual table, while the human annotation will interpret it correctly as Text or other styles. The same applies to multi-line text elements, when authors decided to space them as "invisible" list elements without bullet symbols. A third reason to gather ground-truth through human annotation is to estimate a "natural" upper bound on the segmentation accuracy. As we will show in Section 4, certain documents featuring complex layouts can have different but equally acceptable layout interpretations. This natural upper bound for segmentation accuracy can be found by annotating the same pages multiple times by different people and evaluating the inter-annotator agreement. Such a baseline consistency evaluation is very useful to define expectations for a good target accuracy in trained deep neural network models and avoid overfitting (see Table 1). On the flip side, achieving high annotation consistency proved to be a key challenge in human annotation, as we outline in Section 4. -4 ANNOTATION CAMPAIGN +4 ANNOTATION CAMPAIGN The annotation campaign was carried out in four phases. In phase one, we identified and prepared the data sources for annotation. In phase two, we determined the class labels and how annotations should be done on the documents in order to obtain maximum consistency. The latter was guided by a detailed requirement analysis and exhaustive experiments. In phase three, we trained the annotation staff and performed exams for quality assurance. In phase four, -Table 1: DocLayNet dataset overview. Along with the frequency of each class label, we present the relative occurrence (as % of row "Total") in the train, test and validation sets. The inter-annotator agreement is computed as the mAP@0.5-0.95 metric between pairwise annotations from the triple-annotated pages, from which we obtain accuracy ranges. @@ -83,7 +84,6 @@ Title50710.470.300.5060-7224-6350-6394-10082-9668-7924-56Total1107470941123998166653182-8371-7479-8189-9486-9171-7668-85
Table 1: DocLayNet dataset overview. Along with the frequency of each class label, we present the relative occurrence (as % of row "Total") in the train, test and validation sets. The inter-annotator agreement is computed as the mAP@0.5-0.95 metric between pairwise annotations from the triple-annotated pages, from which we obtain accuracy ranges.
-Figure 3: Corpus Conversion Service annotation user interface. The PDF page is shown in the background, with overlaid text-cells (in darker shades). The annotation boxes can be drawn by dragging a rectangle over each segment with the respective label from the palette on the right.
Figure 3: Corpus Conversion Service annotation user interface. The PDF page is shown in the background, with overlaid text-cells (in darker shades). The annotation boxes can be drawn by dragging a rectangle over each segment with the respective label from the palette on the right. @@ -96,22 +96,22 @@ the textual content of an element, which goes beyond visual layout recognition, in particular outside the Scientific Articles category. At first sight, the task of visual document-layout interpretation appears intuitive enough to obtain plausible annotations in most cases. However, during early trial-runs in the core team, we observed many cases in which annotators use different annotation styles, especially for documents with challenging layouts. For example, if a figure is presented with subfigures, one annotator might draw a single figure bounding-box, while another might annotate each subfigure separately. The same applies for lists, where one might annotate all list items in one block or each list item separately. In essence, we observed that challenging layouts would be annotated in different but plausible ways. To illustrate this, we show in Figure 4 multiple examples of plausible but inconsistent annotations on the same pages. Obviously, this inconsistency in annotations is not desirable for datasets which are intended to be used for model training. To minimise these inconsistencies, we created a detailed annotation guideline. While perfect consistency across 40 annotation staff members is clearly not possible to achieve, we saw a huge improvement in annotation consistency after the introduction of our annotation guideline. A few selected, non-trivial highlights of the guideline are: + (1) Every list-item is an individual object instance with class label List-item . This definition is different from PubLayNet and DocBank, where all list-items are grouped together into one List object. (2) A List-item is a paragraph with hanging indentation. Singleline elements can qualify as List-item if the neighbour elements expose hanging indentation. Bullet or enumeration symbols are not a requirement. (3) For every Caption , there must be exactly one corresponding Picture or Table . (4) Connected sub-pictures are grouped together in one Picture object. (5) Formula numbers are included in a Formula object. (6) Emphasised text (e.g. in italic or bold) at the beginning of a paragraph is not considered a Section-header , unless it appears exclusively on its own line. + The complete annotation guideline is over 100 pages long and a detailed description is obviously out of scope for this paper. Nevertheless, it will be made publicly available alongside with DocLayNet for future reference. Phase 3: Training. After a first trial with a small group of people, we realised that providing the annotation guideline and a set of random practice pages did not yield the desired quality level for layout annotation. Therefore we prepared a subset of pages with two different complexity levels, each with a practice and an exam part. 974 pages were reference-annotated by one proficient core team member. Annotation staff were then given the task to annotate the same subsets (blinded from the reference). By comparing the annotations of each staff member with the reference annotations, we could quantify how closely their annotations matched the reference. Only after passing two exam levels with high annotation quality, staff were admitted into the production phase. Practice iterations -Figure 4: Examples of plausible annotation alternatives for the same page. Criteria in our annotation guideline can resolve cases A to C, while the case D remains ambiguous.
Figure 4: Examples of plausible annotation alternatives for the same page. Criteria in our annotation guideline can resolve cases A to C, while the case D remains ambiguous.
were carried out over a timeframe of 12 weeks, after which 8 of the 40 initially allocated annotators did not pass the bar. Phase 4: Production annotation. The previously selected 80K pages were annotated with the defined 11 class labels by 32 annotators. This production phase took around three months to complete. All annotations were created online through CCS, which visualises the programmatic PDF text-cells as an overlay on the page. The page annotation are obtained by drawing rectangular bounding-boxes, as shown in Figure 3. With regard to the annotation practices, we implemented a few constraints and capabilities on the tooling level. First, we only allow non-overlapping, vertically oriented, rectangular boxes. For the large majority of documents, this constraint was sufficient and it speeds up the annotation considerably in comparison with arbitrary segmentation shapes. Second, annotator staff were not able to see each other's annotations. This was enforced by design to avoid any bias in the annotation, which could skew the numbers of the inter-annotator agreement (see Table 1). We wanted -Table 2: Prediction performance (mAP@0.5-0.95) of object detection networks on DocLayNet test set. The MRCNN (Mask R-CNN) and FRCNN (Faster R-CNN) models with ResNet-50 or ResNet-101 backbone were trained based on the network architectures from the detectron2 model zoo (Mask R-CNN R50, R101-FPN 3x, Faster R-CNN R101-FPN 3x), with default configurations. The YOLO implementation utilized was YOLOv5x6 [13]. All models were initialised using pre-trained weights from the COCO 2017 dataset. @@ -131,19 +131,17 @@ All82-8372.473.573.476.8
Table 2: Prediction performance (mAP@0.5-0.95) of object detection networks on DocLayNet test set. The MRCNN (Mask R-CNN) and FRCNN (Faster R-CNN) models with ResNet-50 or ResNet-101 backbone were trained based on the network architectures from the detectron2 model zoo (Mask R-CNN R50, R101-FPN 3x, Faster R-CNN R101-FPN 3x), with default configurations. The YOLO implementation utilized was YOLOv5x6 [13]. All models were initialised using pre-trained weights from the COCO 2017 dataset.
to avoid this at any cost in order to have clear, unbiased baseline numbers for human document-layout annotation. Third, we introduced the feature of snapping boxes around text segments to obtain a pixel-accurate annotation and again reduce time and effort. The CCS annotation tool automatically shrinks every user-drawn box to the minimum bounding-box around the enclosed text-cells for all purely text-based segments, which excludes only Table and Picture . For the latter, we instructed annotation staff to minimise inclusion of surrounding whitespace while including all graphical lines. A downside of snapping boxes to enclosed text cells is that some wrongly parsed PDF pages cannot be annotated correctly and need to be skipped. Fourth, we established a way to flag pages as rejected for cases where no valid annotation according to the label guidelines could be achieved. Example cases for this would be PDF pages that render incorrectly or contain layouts that are impossible to capture with non-overlapping rectangles. Such rejected pages are not contained in the final dataset. With all these measures in place, experienced annotation staff managed to annotate a single page in a typical timeframe of 20s to 60s, depending on its complexity. -5 EXPERIMENTS +5 EXPERIMENTS The primary goal of DocLayNet is to obtain high-quality ML models capable of accurate document-layout analysis on a wide variety of challenging layouts. As discussed in Section 2, object detection models are currently the easiest to use, due to the standardisation of ground-truth data in COCO format [16] and the availability of general frameworks such as detectron2 [17]. Furthermore, baseline numbers in PubLayNet and DocBank were obtained using standard object detection models such as Mask R-CNN and Faster R-CNN. As such, we will relate to these object detection methods in this -Figure 5: Prediction performance (mAP@0.5-0.95) of a Mask R-CNN network with ResNet50 backbone trained on increasing fractions of the DocLayNet dataset. The learning curve flattens around the 80% mark, indicating that increasing the size of the DocLayNet dataset with similar data will not yield significantly better predictions.
Figure 5: Prediction performance (mAP@0.5-0.95) of a Mask R-CNN network with ResNet50 backbone trained on increasing fractions of the DocLayNet dataset. The learning curve flattens around the 80% mark, indicating that increasing the size of the DocLayNet dataset with similar data will not yield significantly better predictions.
paper and leave the detailed evaluation of more recent methods mentioned in Section 2 for future work. In this section, we will present several aspects related to the performance of object detection models on DocLayNet. Similarly as in PubLayNet, we will evaluate the quality of their predictions using mean average precision (mAP) with 10 overlaps that range from 0.5 to 0.95 in steps of 0.05 (mAP@0.5-0.95). These scores are computed by leveraging the evaluation code provided by the COCO API [16]. -Baselines for Object Detection +Baselines for Object Detection In Table 2, we present baseline experiments (given in mAP) on Mask R-CNN [12], Faster R-CNN [11], and YOLOv5 [13]. Both training and evaluation were performed on RGB images with dimensions of 1025 × 1025 pixels. For training, we only used one annotation in case of redundantly annotated pages. As one can observe, the variation in mAP between the models is rather low, but overall between 6 and 10% lower than the mAP computed from the pairwise human annotations on triple-annotated pages. This gives a good indication that the DocLayNet dataset poses a worthwhile challenge for the research community to close the gap between human recognition and ML approaches. It is interesting to see that Mask R-CNN and Faster R-CNN produce very comparable mAP scores, indicating that pixel-based image segmentation derived from bounding-boxes does not help to obtain better predictions. On the other hand, the more recent Yolov5x model does very well and even out-performs humans on selected labels such as Text , Table and Picture . This is not entirely surprising, as Text , Table and Picture are abundant and the most visually distinctive in a document. Table 3: Performance of a Mask R-CNN R50 network in mAP@0.5-0.95 scores trained on DocLayNet with different class label sets. The reduced label sets were obtained by either down-mapping or dropping labels. -Table 4: Performance of a Mask R-CNN R50 network with document-wise and page-wise split for different label sets. Naive page-wise split will result in GLYPH 10% point improvement. @@ -161,9 +159,9 @@ Title77Sec.-h.Sec.-h.Sec.-h.Overall72737877
Table 4: Performance of a Mask R-CNN R50 network with document-wise and page-wise split for different label sets. Naive page-wise split will result in GLYPH 10% point improvement.
-Learning Curve +Learning Curve One of the fundamental questions related to any dataset is if it is "large enough". To answer this question for DocLayNet, we performed a data ablation study in which we evaluated a Mask R-CNN model trained on increasing fractions of the DocLayNet dataset. As can be seen in Figure 5, the mAP score rises sharply in the beginning and eventually levels out. To estimate the error-bar on the metrics, we ran the training five times on the entire data-set. This resulted in a 1% error-bar, depicted by the shaded area in Figure 5. In the inset of Figure 5, we show the exact same data-points, but with a logarithmic scale on the x-axis. As is expected, the mAP score increases linearly as a function of the data-size in the inset. The curve ultimately flattens out between the 80% and 100% mark, with the 80% mark falling within the error-bars of the 100% mark. This provides a good indication that the model would not improve significantly by yet increasing the data size. Rather, it would probably benefit more from improved data consistency (as discussed in Section 3), data augmentation methods [23], or the addition of more document categories and styles. -Impact of Class Labels +Impact of Class Labels The choice and number of labels can have a significant effect on the overall model performance. Since PubLayNet, DocBank and DocLayNet all have different label sets, it is of particular interest to understand and quantify this influence of the label set on the model performance. We investigate this by either down-mapping labels into more common ones (e.g. Caption → Text ) or excluding them from the annotations entirely. Furthermore, it must be stressed that all mappings and exclusions were performed on the data before model training. In Table 3, we present the mAP scores for a Mask R-CNN R50 network on different label sets. Where a label is down-mapped, we show its corresponding label, otherwise it was excluded. We present three different label sets, with 6, 5 and 4 different labels respectively. The set of 5 labels contains the same labels as PubLayNet. However, due to the different definition of @@ -183,11 +181,10 @@ All72847887
lists in PubLayNet (grouped list-items) versus DocLayNet (separate list-items), the label set of size 4 is the closest to PubLayNet, in the assumption that the List is down-mapped to Text in PubLayNet. The results in Table 3 show that the prediction accuracy on the remaining class labels does not change significantly when other classes are merged into them. The overall macro-average improves by around 5%, in particular when Page-footer and Page-header are excluded. -Impact of Document Split in Train and Test Set +Impact of Document Split in Train and Test Set Many documents in DocLayNet have a unique styling. In order to avoid overfitting on a particular style, we have split the train-, test- and validation-sets of DocLayNet on document boundaries, i.e. every document contributes pages to only one set. To the best of our knowledge, this was not considered in PubLayNet or DocBank. To quantify how this affects model performance, we trained and evaluated a Mask R-CNN R50 model on a modified dataset version. Here, the train-, test- and validation-sets were obtained by a randomised draw over the individual pages. As can be seen in Table 4, the difference in model performance is surprisingly large: pagewise splitting gains ˜ 10% in mAP over the document-wise splitting. Thus, random page-wise splitting of DocLayNet can easily lead to accidental overestimation of model performance and should be avoided. -Dataset Comparison +Dataset Comparison Throughout this paper, we claim that DocLayNet's wider variety of document layouts leads to more robust layout detection models. In Table 5, we provide evidence for that. We trained models on each of the available datasets (PubLayNet, DocBank and DocLayNet) and evaluated them on the test sets of the other datasets. Due to the different label sets and annotation styles, a direct comparison is not possible. Hence, we focussed on the common labels among the datasets. Between PubLayNet and DocLayNet, these are Picture , -Table 5: Prediction Performance (mAP@0.5-0.95) of a Mask R-CNN R50 network across the PubLayNet, DocBank & DocLayNet data-sets. By evaluating on common label classes of each dataset, we observe that the DocLayNet-trained model has much less pronounced variations in performance across all datasets. @@ -209,13 +206,14 @@
Table 5: Prediction Performance (mAP@0.5-0.95) of a Mask R-CNN R50 network across the PubLayNet, DocBank & DocLayNet data-sets. By evaluating on common label classes of each dataset, we observe that the DocLayNet-trained model has much less pronounced variations in performance across all datasets.
Section-header , Table and Text . Before training, we either mapped or excluded DocLayNet's other labels as specified in table 3, and also PubLayNet's List to Text . Note that the different clustering of lists (by list-element vs. whole list objects) naturally decreases the mAP score for Text . For comparison of DocBank with DocLayNet, we trained only on Picture and Table clusters of each dataset. We had to exclude Text because successive paragraphs are often grouped together into a single object in DocBank. This paragraph grouping is incompatible with the individual paragraphs of DocLayNet. As can be seen in Table 5, DocLayNet trained models yield better performance compared to the previous datasets. It is noteworthy that the models trained on PubLayNet and DocBank perform very well on their own test set, but have a much lower performance on the foreign datasets. While this also applies to DocLayNet, the difference is far less pronounced. Thus we conclude that DocLayNet trained models are overall more robust and will produce better results for challenging, unseen layouts. -Example Predictions +Example Predictions To conclude this section, we illustrate the quality of layout predictions one can expect from DocLayNet-trained models by providing a selection of examples without any further post-processing applied. Figure 6 shows selected layout predictions on pages from the test-set of DocLayNet. Results look decent in general across document categories, however one can also observe mistakes such as overlapping clusters of different classes, or entirely missing boxes due to low confidence. -6 CONCLUSION +6 CONCLUSION In this paper, we presented the DocLayNet dataset. It provides the document conversion and layout analysis research community a new and challenging dataset to improve and fine-tune novel ML methods on. In contrast to many other datasets, DocLayNet was created by human annotation in order to obtain reliable layout ground-truth on a wide variety of publication- and typesettingstyles. Including a large proportion of documents outside the scientific publishing domain adds significant value in this respect. From the dataset, we have derived on the one hand reference metrics for human performance on document-layout annotation (through double and triple annotations) and on the other hand evaluated the baseline performance of commonly used object detection methods. We also illustrated the impact of various dataset-related aspects on model performance through data-ablation experiments, both from a size and class-label perspective. Last but not least, we compared the accuracy of models trained on other public datasets and showed that DocLayNet trained models are more robust. To date, there is still a significant gap between human and ML accuracy on the layout interpretation task, and we hope that this work will inspire the research community to close that gap. -REFERENCES +REFERENCES + [1] Max Göbel, Tamir Hassan, Ermelinda Oro, and Giorgio Orsi. Icdar 2013 table competition. In 2013 12th International Conference on Document Analysis and Recognition , pages 1449-1453, 2013. [2] Christian Clausner, Apostolos Antonacopoulos, and Stefan Pletschacher. Icdar2017 competition on recognition of documents with complex layouts rdcl2017. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) , volume 01, pages 1404-1410, 2017. [3] Hervé Déjean, Jean-Luc Meunier, Liangcai Gao, Yilun Huang, Yu Fang, Florian Kleber, and Eva-Maria Lang. ICDAR 2019 Competition on Table Detection and Recognition (cTDaR), April 2019. http://sac.founderit.com/. @@ -229,13 +227,14 @@ [11] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence , 39(6):1137-1149, 2017. [12] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross B. Girshick. Mask R-CNN. In IEEE International Conference on Computer Vision , ICCV, pages 2980-2988. IEEE Computer Society, Oct 2017. [13] Glenn Jocher, Alex Stoken, Ayush Chaurasia, Jirka Borovec, NanoCode012, TaoXie, Yonghye Kwon, Kalen Michael, Liu Changyu, Jiacong Fang, Abhiram V, Laughing, tkianai, yxNONG, Piotr Skalski, Adam Hogan, Jebastin Nadar, imyhxy, Lorenzo Mammana, Alex Wang, Cristi Fati, Diego Montes, Jan Hajek, Laurentiu -Text Caption List-Item Formula Table Section-Header Picture Page-Header Page-Footer Title +
Text Caption List-Item Formula Table Section-Header Picture Page-Header Page-Footer Title
Figure 6: Example layout predictions on selected pages from the DocLayNet test-set. (A, D) exhibit favourable results on coloured backgrounds. (B, C) show accurate list-item and paragraph differentiation despite densely-spaced lines. (E) demonstrates good table and figure distinction. (F) shows predictions on a Chinese patent with multiple overlaps, label confusion and missing boxes. Diaconu, Mai Thanh Minh, Marc, albinxavi, fatih, oleg, and wanghao yang. ultralytics/yolov5: v6.0 - yolov5n nano models, roboflow integration, tensorflow export, opencv dnn support, October 2021. + [14] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to-end object detection with transformers. CoRR , abs/2005.12872, 2020. [15] Mingxing Tan, Ruoming Pang, and Quoc V. Le. Efficientdet: Scalable and efficient object detection. CoRR , abs/1911.09070, 2019. [16] Tsung-Yi Lin, Michael Maire, Serge J. Belongie, Lubomir D. Bourdev, Ross B. Girshick, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C. Lawrence Zitnick. Microsoft COCO: common objects in context, 2014. diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.doctags.txt b/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.doctags.txt index d4a43602..9352bf30 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.doctags.txt +++ b/tests/data/groundtruth/docling_v2/2305.03393v1-pg9.doctags.txt @@ -1,8 +1,7 @@ order to compute the TED score. Inference timing results for all experiments were obtained from the same machine on a single core with AMD EPYC 7763 CPU @2.45 GHz. -5.1 Hyper Parameter Optimization +5.1 Hyper Parameter Optimization We have chosen the PubTabNet data set to perform HPO, since it includes a highly diverse set of tables. Also we report TED scores separately for simple and complex tables (tables with cell spans). Results are presented in Table. 1. It is evident that with OTSL, our model achieves the same TED score and slightly better mAP scores in comparison to HTML. However OTSL yields a 2x speed up in the inference runtime over HTML. -Table 1. HPO performed in OTSL and HTML representation on the same transformer-based TableFormer [9] architecture, trained only on PubTabNet [22]. Effects of reducing the # of layers in encoder and decoder stages of the model show that smaller models trained on OTSL perform better, especially in recognizing complex table structures, and maintain a much higher mAP score than the HTML counterpart. @@ -14,7 +13,7 @@ 24HTML0.9450.897 0.9010.915 0.9310.859 0.8341.91 3.8142OTSL HTML0.952 0.9440.92 0.9030.942 0.9310.857 0.8241.22 2
Table 1. HPO performed in OTSL and HTML representation on the same transformer-based TableFormer [9] architecture, trained only on PubTabNet [22]. Effects of reducing the # of layers in encoder and decoder stages of the model show that smaller models trained on OTSL perform better, especially in recognizing complex table structures, and maintain a much higher mAP score than the HTML counterpart.
-5.2 Quantitative Results +5.2 Quantitative Results We picked the model parameter configuration that produced the best prediction quality (enc=6, dec=6, heads=8) with PubTabNet alone, then independently trained and evaluated it on three publicly available data sets: PubTabNet (395k samples), FinTabNet (113k samples) and PubTables-1M (about 1M samples). Performance results are presented in Table. 2. It is clearly evident that the model trained on OTSL outperforms HTML across the board, keeping high TEDs and mAP scores even on difficult financial tables (FinTabNet) that contain sparse and large tables. Additionally, the results show that OTSL has an advantage over HTML when applied on a bigger data set like PubTables-1M and achieves significantly improved scores. Finally, OTSL achieves faster inference due to fewer decoding steps which is a result of the reduced sequence representation.
\ No newline at end of file diff --git a/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt b/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt index 1a76182f..f1d5c26f 100644 --- a/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt +++ b/tests/data/groundtruth/docling_v2/2305.03393v1.doctags.txt @@ -1,13 +1,12 @@ -Optimized Table Tokenization for Table Structure Recognition +Optimized Table Tokenization for Table Structure Recognition Maksym Lysak [0000 - 0002 - 3723 - $^{6960]}$, Ahmed Nassar[0000 - 0002 - 9468 - $^{0822]}$, Nikolaos Livathinos [0000 - 0001 - 8513 - $^{3491]}$, Christoph Auer[0000 - 0001 - 5761 - $^{0422]}$, and Peter Staar [0000 - 0002 - 8088 - 0823] IBM Research {mly,ahn,nli,cau,taa}@zurich.ibm.com Abstract. Extracting tables from documents is a crucial task in any document conversion pipeline. Recently, transformer-based models have demonstrated that table-structure can be recognized with impressive accuracy using Image-to-Markup-Sequence (Im2Seq) approaches. Taking only the image of a table, such models predict a sequence of tokens (e.g. in HTML, LaTeX) which represent the structure of the table. Since the token representation of the table structure has a significant impact on the accuracy and run-time performance of any Im2Seq model, we investigate in this paper how table-structure representation can be optimised. We propose a new, optimised table-structure language (OTSL) with a minimized vocabulary and specific rules. The benefits of OTSL are that it reduces the number of tokens to 5 (HTML needs 28+) and shortens the sequence length to half of HTML on average. Consequently, model accuracy improves significantly, inference time is halved compared to HTML-based models, and the predicted table structures are always syntactically correct. This in turn eliminates most post-processing needs. Popular table structure data-sets will be published in OTSL format to the community. Keywords: Table Structure Recognition · Data Representation · Transformers · Optimization. -1 Introduction +1 Introduction Tables are ubiquitous in documents such as scientific papers, patents, reports, manuals, specification sheets or marketing material. They often encode highly valuable information and therefore need to be extracted with high accuracy. Unfortunately, tables appear in documents in various sizes, styling and structure, making it difficult to recover their correct structure with simple analytical methods. Therefore, accurate table extraction is achieved these days with machine-learning based methods. In modern document understanding systems [1,15], table extraction is typically a two-step process. Firstly, every table on a page is located with a bounding box, and secondly, their logical row and column structure is recognized. As of -Fig. 1. Comparison between HTML and OTSL table structure representation: (A) table-example with complex row and column headers, including a 2D empty span, (B) minimal graphical representation of table structure using rectangular layout, (C) HTML representation, (D) OTSL representation. This example demonstrates many of the key-features of OTSL, namely its reduced vocabulary size (12 versus 5 in this case), its reduced sequence length (55 versus 30) and a enhanced internal structure (variable token sequence length per row in HTML versus a fixed length of rows in OTSL).
Fig. 1. Comparison between HTML and OTSL table structure representation: (A) table-example with complex row and column headers, including a 2D empty span, (B) minimal graphical representation of table structure using rectangular layout, (C) HTML representation, (D) OTSL representation. This example demonstrates many of the key-features of OTSL, namely its reduced vocabulary size (12 versus 5 in this case), its reduced sequence length (55 versus 30) and a enhanced internal structure (variable token sequence length per row in HTML versus a fixed length of rows in OTSL). @@ -17,15 +16,14 @@ While the majority of research in TSR is currently focused on the development and application of novel neural model architectures, the table structure representation language (e.g. HTML in PubTabNet and FinTabNet) is usually adopted as is for the sequence tokenization in Im2Seq models. In this paper, we aim for the opposite and investigate the impact of the table structure representation language with an otherwise unmodified Im2Seq transformer-based architecture. Since the current state-of-the-art Im2Seq model is TableFormer [9], we select this model to perform our experiments. The main contribution of this paper is the introduction of a new optimised table structure language (OTSL), specifically designed to describe table-structure in an compact and structured way for Im2Seq models. OTSL has a number of key features, which make it very attractive to use in Im2Seq models. Specifically, compared to other languages such as HTML, OTSL has a minimized vocabulary which yields short sequence length, strong inherent structure (e.g. strict rectangular layout) and a strict syntax with rules that only look backwards. The latter allows for syntax validation during inference and ensures a syntactically correct table-structure. These OTSL features are illustrated in Figure 1, in comparison to HTML. The paper is structured as follows. In section 2, we give an overview of the latest developments in table-structure reconstruction. In section 3 we review the current HTML table encoding (popularised by PubTabNet and FinTabNet) and discuss its flaws. Subsequently, we introduce OTSL in section 4, which includes the language definition, syntax rules and error-correction procedures. In section 5, we apply OTSL on the TableFormer architecture, compare it to TableFormer models trained on HTML and ultimately demonstrate the advantages of using OTSL. Finally, in section 6 we conclude our work and outline next potential steps. -2 Related Work +2 Related Work Approaches to formalize the logical structure and layout of tables in electronic documents date back more than two decades [16]. In the recent past, a wide variety of computer vision methods have been explored to tackle the problem of table structure recognition, i.e. the correct identification of columns, rows and spanning cells in a given table. Broadly speaking, the current deeplearning based approaches fall into three categories: object detection (OD) methods, Graph-Neural-Network (GNN) methods and Image-to-Markup-Sequence (Im2Seq) methods. Object-detection based methods [11,12,13,14,21] rely on tablestructure annotation using (overlapping) bounding boxes for training, and produce bounding-box predictions to define table cells, rows, and columns on a table image. Graph Neural Network (GNN) based methods [3,6,17,18], as the name suggests, represent tables as graph structures. The graph nodes represent the content of each table cell, an embedding vector from the table image, or geometric coordinates of the table cell. The edges of the graph define the relationship between the nodes, e.g. if they belong to the same column, row, or table cell. Other work [20] aims at predicting a grid for each table and deciding which cells must be merged using an attention network. Im2Seq methods cast the problem as a sequence generation task [4,5,9,22], and therefore need an internal tablestructure representation language, which is often implemented with standard markup languages (e.g. HTML, LaTeX, Markdown). In theory, Im2Seq methods have a natural advantage over the OD and GNN methods by virtue of directly predicting the table-structure. As such, no post-processing or rules are needed in order to obtain the table-structure, which is necessary with OD and GNN approaches. In practice, this is not entirely true, because a predicted sequence of table-structure markup does not necessarily have to be syntactically correct. Hence, depending on the quality of the predicted sequence, some post-processing needs to be performed to ensure a syntactically valid (let alone correct) sequence. Within the Im2Seq method, we find several popular models, namely the encoder-dual-decoder model (EDD) [22], TableFormer [9], Tabsplitter[2] and Ye et. al. [19]. EDD uses two consecutive long short-term memory (LSTM) decoders to predict a table in HTML representation. The tag decoder predicts a sequence of HTML tags. For each decoded table cell ( ), the attention is passed to the cell decoder to predict the content with an embedded OCR approach. The latter makes it susceptible to transcription errors in the cell content of the table. TableFormer address this reliance on OCR and uses two transformer decoders for HTML structure and cell bounding box prediction in an end-to-end architecture. The predicted cell bounding box is then used to extract text tokens from an originating (digital) PDF page, circumventing any need for OCR. TabSplitter [2] proposes a compact double-matrix representation of table rows and columns to do error detection and error correction of HTML structure sequences based on predictions from [19]. This compact double-matrix representation can not be used directly by the Img2seq model training, so the model uses HTML as an intermediate form. Chi et. al. [4] introduce a data set and a baseline method using bidirectional LSTMs to predict LaTeX code. Kayal [5] introduces Gated ResNet transformers to predict LaTeX code, and a separate OCR module to extract content. Im2Seq approaches have shown to be well-suited for the TSR task and allow a full end-to-end network design that can output the final table structure without pre- or post-processing logic. Furthermore, Im2Seq models have demonstrated to deliver state-of-the-art prediction accuracy [9]. This motivated the authors to investigate if the performance (both in accuracy and inference time) can be further improved by optimising the table structure representation language. We believe this is a necessary step before further improving neural network architectures for this task. -3 Problem Statement +3 Problem Statement All known Im2Seq based models for TSR fundamentally work in similar ways. Given an image of a table, the Im2Seq model predicts the structure of the table by generating a sequence of tokens. These tokens originate from a finite vocab- ulary and can be interpreted as a table structure. For example, with the HTML tokens ,
, , , and , one can construct simple table structures without any spanning cells. In reality though, one needs at least 28 HTML tokens to describe the most common complex tables observed in real-world documents [21,22], due to a variety of spanning cells definitions in the HTML token vocabulary.
-Fig. 2. Frequency of tokens in HTML and OTSL as they appear in PubTabNet.
Fig. 2. Frequency of tokens in HTML and OTSL as they appear in PubTabNet. @@ -35,48 +33,51 @@ In a valid HTML table, the token sequence must describe a 2D grid of table cells, serialised in row-major ordering, where each row and each column have the same length (while considering row- and column-spans). Furthermore, every opening tag in HTML needs to be matched by a closing tag in a correct hierarchical manner. Since the number of tokens for each table row and column can vary significantly, especially for large tables with many row- and column-spans, it is complex to verify the consistency of predicted structures during sequence generation. Implicitly, this also means that Im2Seq models need to learn these complex syntax rules, simply to deliver valid output. In practice, we observe two major issues with prediction quality when training Im2Seq models on HTML table structure generation from images. On the one hand, we find that on large tables, the visual attention of the model often starts to drift and is not accurately moving forward cell by cell anymore. This manifests itself in either in an increasing location drift for proposed table-cells in later rows on the same column or even complete loss of vertical alignment, as illustrated in Figure 5. Addressing this with post-processing is partially possible, but clearly undesired. On the other hand, we find many instances of predictions with structural inconsistencies or plain invalid HTML output, as shown in Figure 6, which are nearly impossible to properly correct. Both problems seriously impact the TSR model performance, since they reflect not only in the task of pure structure recognition but also in the equally crucial recognition or matching of table cell content. -4 Optimised Table Structure Language +4 Optimised Table Structure Language To mitigate the issues with HTML in Im2Seq-based TSR models laid out before, we propose here our Optimised Table Structure Language (OTSL). OTSL is designed to express table structure with a minimized vocabulary and a simple set of rules, which are both significantly reduced compared to HTML. At the same time, OTSL enables easy error detection and correction during sequence generation. We further demonstrate how the compact structure representation and minimized sequence length improves prediction accuracy and inference time in the TableFormer architecture. -4.1 Language Definition +4.1 Language Definition In Figure 3, we illustrate how the OTSL is defined. In essence, the OTSL defines only 5 tokens that directly describe a tabular structure based on an atomic 2D grid. The OTSL vocabulary is comprised of the following tokens: + -"C" cell a new table cell that either has or does not have cell content -"L" cell left-looking cell , merging with the left neighbor cell to create a span -"U" cell up-looking cell , merging with the upper neighbor cell to create a span -"X" cell cross cell , to merge with both left and upper neighbor cells -"NL" new-line , switch to the next row. + A notable attribute of OTSL is that it has the capability of achieving lossless conversion to HTML. -Fig. 3. OTSL description of table structure: A - table example; B - graphical representation of table structure; C - mapping structure on a grid; D - OTSL structure encoding; E - explanation on cell encoding
Fig. 3. OTSL description of table structure: A - table example; B - graphical representation of table structure; C - mapping structure on a grid; D - OTSL structure encoding; E - explanation on cell encoding
-4.2 Language Syntax +4.2 Language Syntax The OTSL representation follows these syntax rules: + 1. Left-looking cell rule : The left neighbour of an "L" cell must be either another "L" cell or a "C" cell. 2. Up-looking cell rule : The upper neighbour of a "U" cell must be either another "U" cell or a "C" cell. -3. Cross cell rule : + +3. Cross cell rule : + The left neighbour of an "X" cell must be either another "X" cell or a "U" cell, and the upper neighbour of an "X" cell must be either another "X" cell or an "L" cell. 4. First row rule : Only "L" cells and "C" cells are allowed in the first row. 5. First column rule : Only "U" cells and "C" cells are allowed in the first column. 6. Rectangular rule : The table representation is always rectangular - all rows must have an equal number of tokens, terminated with "NL" token. + The application of these rules gives OTSL a set of unique properties. First of all, the OTSL enforces a strictly rectangular structure representation, where every new-line token starts a new row. As a consequence, all rows and all columns have exactly the same number of tokens, irrespective of cell spans. Secondly, the OTSL representation is unambiguous: Every table structure is represented in one way. In this representation every table cell corresponds to a "C"-cell token, which in case of spans is always located in the top-left corner of the table cell definition. Third, OTSL syntax rules are only backward-looking. As a consequence, every predicted token can be validated straight during sequence generation by looking at the previously predicted sequence. As such, OTSL can guarantee that every predicted sequence is syntactically valid. These characteristics can be easily learned by sequence generator networks, as we demonstrate further below. We find strong indications that this pattern reduces significantly the column drift seen in the HTML based models (see Figure 5). -4.3 Error-detection and -mitigation +4.3 Error-detection and -mitigation The design of OTSL allows to validate a table structure easily on an unfinished sequence. The detection of an invalid sequence token is a clear indication of a prediction mistake, however a valid sequence by itself does not guarantee prediction correctness. Different heuristics can be used to correct token errors in an invalid sequence and thus increase the chances for accurate predictions. Such heuristics can be applied either after the prediction of each token, or at the end on the entire predicted sequence. For example a simple heuristic which can correct the predicted OTSL sequence on-the-fly is to verify if the token with the highest prediction confidence invalidates the predicted sequence, and replace it by the token with the next highest confidence until OTSL rules are satisfied. -5 Experiments +5 Experiments To evaluate the impact of OTSL on prediction accuracy and inference times, we conducted a series of experiments based on the TableFormer model (Figure 4) with two objectives: Firstly we evaluate the prediction quality and performance of OTSL vs. HTML after performing Hyper Parameter Optimization (HPO) on the canonical PubTabNet data set. Secondly we pick the best hyper-parameters found in the first step and evaluate how OTSL impacts the performance of TableFormer after training on other publicly available data sets (FinTabNet, PubTables-1M [14]). The ground truth (GT) from all data sets has been converted into OTSL format for this purpose, and will be made publicly available. -Fig. 4. Architecture sketch of the TableFormer model, which is a representative for the Im2Seq approach.
Fig. 4. Architecture sketch of the TableFormer model, which is a representative for the Im2Seq approach.
We rely on standard metrics such as Tree Edit Distance score (TEDs) for table structure prediction, and Mean Average Precision (mAP) with 0.75 Intersection Over Union (IOU) threshold for the bounding-box predictions of table cells. The predicted OTSL structures were converted back to HTML format in order to compute the TED score. Inference timing results for all experiments were obtained from the same machine on a single core with AMD EPYC 7763 CPU @2.45 GHz. -5.1 Hyper Parameter Optimization +5.1 Hyper Parameter Optimization We have chosen the PubTabNet data set to perform HPO, since it includes a highly diverse set of tables. Also we report TED scores separately for simple and complex tables (tables with cell spans). Results are presented in Table. 1. It is evident that with OTSL, our model achieves the same TED score and slightly better mAP scores in comparison to HTML. However OTSL yields a 2x speed up in the inference runtime over HTML. -Table 1. HPO performed in OTSL and HTML representation on the same transformer-based TableFormer [9] architecture, trained only on PubTabNet [22]. Effects of reducing the # of layers in encoder and decoder stages of the model show that smaller models trained on OTSL perform better, especially in recognizing complex table structures, and maintain a much higher mAP score than the HTML counterpart. @@ -88,10 +89,9 @@ HTML0.9010.915 0.9310.859 0.8341.91 3.8142OTSL HTML0.952 0.9440.92 0.9030.942 0.9310.857 0.8241.22 2
Table 1. HPO performed in OTSL and HTML representation on the same transformer-based TableFormer [9] architecture, trained only on PubTabNet [22]. Effects of reducing the # of layers in encoder and decoder stages of the model show that smaller models trained on OTSL perform better, especially in recognizing complex table structures, and maintain a much higher mAP score than the HTML counterpart.
-5.2 Quantitative Results +5.2 Quantitative Results We picked the model parameter configuration that produced the best prediction quality (enc=6, dec=6, heads=8) with PubTabNet alone, then independently trained and evaluated it on three publicly available data sets: PubTabNet (395k samples), FinTabNet (113k samples) and PubTables-1M (about 1M samples). Performance results are presented in Table. 2. It is clearly evident that the model trained on OTSL outperforms HTML across the board, keeping high TEDs and mAP scores even on difficult financial tables (FinTabNet) that contain sparse and large tables. Additionally, the results show that OTSL has an advantage over HTML when applied on a bigger data set like PubTables-1M and achieves significantly improved scores. Finally, OTSL achieves faster inference due to fewer decoding steps which is a result of the reduced sequence representation. -Table 2. TSR and cell detection results compared between OTSL and HTML on the PubTabNet [22], FinTabNet [21] and PubTables-1M [14] data sets using TableFormer [9] (with enc=6, dec=6, heads=8). @@ -104,29 +104,30 @@ PubTables-1MOTSL0.9870.9640.9770.8961.79PubTables-1MHTML0.9830.9440.9660.8893.26
Table 2. TSR and cell detection results compared between OTSL and HTML on the PubTabNet [22], FinTabNet [21] and PubTables-1M [14] data sets using TableFormer [9] (with enc=6, dec=6, heads=8).
-5.3 Qualitative Results +5.3 Qualitative Results To illustrate the qualitative differences between OTSL and HTML, Figure 5 demonstrates less overlap and more accurate bounding boxes with OTSL. In Figure 6, OTSL proves to be more effective in handling tables with longer token sequences, resulting in even more precise structure prediction and bounding boxes. -Fig. 5. The OTSL model produces more accurate bounding boxes with less overlap (E) than the HTML model (D), when predicting the structure of a sparse table (A), at twice the inference speed because of shorter sequence length (B),(C). "PMC2807444_006_00.png" PubTabNet. μ
Fig. 5. The OTSL model produces more accurate bounding boxes with less overlap (E) than the HTML model (D), when predicting the structure of a sparse table (A), at twice the inference speed because of shorter sequence length (B),(C). "PMC2807444_006_00.png" PubTabNet. μ
μ -Fig. 6. Visualization of predicted structure and detected bounding boxes on a complex table with many rows. The OTSL model (B) captured repeating pattern of horizontally merged cells from the GT (A), unlike the HTML model (C). The HTML model also didn't complete the HTML sequence correctly and displayed a lot more of drift and overlap of bounding boxes. "PMC5406406_003_01.png" PubTabNet.
Fig. 6. Visualization of predicted structure and detected bounding boxes on a complex table with many rows. The OTSL model (B) captured repeating pattern of horizontally merged cells from the GT (A), unlike the HTML model (C). The HTML model also didn't complete the HTML sequence correctly and displayed a lot more of drift and overlap of bounding boxes. "PMC5406406_003_01.png" PubTabNet.
-6 Conclusion +6 Conclusion We demonstrated that representing tables in HTML for the task of table structure recognition with Im2Seq models is ill-suited and has serious limitations. Furthermore, we presented in this paper an Optimized Table Structure Language (OTSL) which, when compared to commonly used general purpose languages, has several key benefits. First and foremost, given the same network configuration, inference time for a table-structure prediction is about 2 times faster compared to the conventional HTML approach. This is primarily owed to the shorter sequence length of the OTSL representation. Additional performance benefits can be obtained with HPO (hyper parameter optimization). As we demonstrate in our experiments, models trained on OTSL can be significantly smaller, e.g. by reducing the number of encoder and decoder layers, while preserving comparatively good prediction quality. This can further improve inference performance, yielding 5-6 times faster inference speed in OTSL with prediction quality comparable to models trained on HTML (see Table 1). Secondly, OTSL has more inherent structure and a significantly restricted vocabulary size. This allows autoregressive models to perform better in the TED metric, but especially with regards to prediction accuracy of the table-cell bounding boxes (see Table 2). As shown in Figure 5, we observe that the OTSL drastically reduces the drift for table cell bounding boxes at high row count and in sparse tables. This leads to more accurate predictions and a significant reduction in post-processing complexity, which is an undesired necessity in HTML-based Im2Seq models. Significant novelty lies in OTSL syntactical rules, which are few, simple and always backwards looking. Each new token can be validated only by analyzing the sequence of previous tokens, without requiring the entire sequence to detect mistakes. This in return allows to perform structural error detection and correction on-the-fly during sequence generation. -References +References + 1. Auer, C., Dolfi, M., Carvalho, A., Ramis, C.B., Staar, P.W.J.: Delivering document conversion as a cloud service with high throughput and responsiveness. CoRR abs/2206.00785 (2022). https://doi.org/10.48550/arXiv.2206.00785 , https://doi.org/10.48550/arXiv.2206.00785 2. Chen, B., Peng, D., Zhang, J., Ren, Y., Jin, L.: Complex table structure recognition in the wild using transformer and identity matrix-based augmentation. In: Porwal, U., Fornés, A., Shafait, F. (eds.) Frontiers in Handwriting Recognition. pp. 545561. Springer International Publishing, Cham (2022) 3. Chi, Z., Huang, H., Xu, H.D., Yu, H., Yin, W., Mao, X.L.: Complicated table structure recognition. arXiv preprint arXiv:1908.04729 (2019) 4. Deng, Y., Rosenberg, D., Mann, G.: Challenges in end-to-end neural scientific table recognition. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 894-901. IEEE (2019) + + 5. Kayal, P., Anand, M., Desai, H., Singh, M.: Tables to latex: structure and content extraction from scientific tables. International Journal on Document Analysis and Recognition (IJDAR) pp. 1-10 (2022) 6. Lee, E., Kwon, J., Yang, H., Park, J., Lee, S., Koo, H.I., Cho, N.I.: Table structure recognition based on grid shape graph. In: 2022 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC). pp. 18681873. IEEE (2022) 7. Li, M., Cui, L., Huang, S., Wei, F., Zhou, M., Li, Z.: Tablebank: A benchmark dataset for table detection and recognition (2019) @@ -140,6 +141,8 @@ 15. Staar, P.W.J., Dolfi, M., Auer, C., Bekas, C.: Corpus conversion service: A machine learning platform to ingest documents at scale. In: Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. pp. 774-782. KDD '18, Association for Computing Machinery, New York, NY, USA (2018). https://doi.org/10.1145/3219819.3219834 , https://doi.org/10. 1145/3219819.3219834 16. Wang, X.: Tabular Abstraction, Editing, and Formatting. Ph.D. thesis, CAN (1996), aAINN09397 17. Xue, W., Li, Q., Tao, D.: Res2tim: Reconstruct syntactic structures from table images. In: 2019 International Conference on Document Analysis and Recognition (ICDAR). pp. 749-755. IEEE (2019) + + 18. Xue, W., Yu, B., Wang, W., Tao, D., Li, Q.: Tgrnet: A table graph reconstruction network for table structure recognition. In: Proceedings of the IEEE/CVF International Conference on Computer Vision. pp. 1295-1304 (2021) 19. Ye, J., Qi, X., He, Y., Chen, Y., Gu, D., Gao, P., Xiao, R.: Pingan-vcgroup's solution for icdar 2021 competition on scientific literature parsing task b: Table recognition to html (2021). https://doi.org/10.48550/ARXIV.2105.01848 , https://arxiv.org/abs/2105.01848 20. Zhang, Z., Zhang, J., Du, J., Wang, F.: Split, embed and merge: An accurate table structure recognizer. Pattern Recognition 126 , 108565 (2022) diff --git a/tests/data/groundtruth/docling_v2/redp5110_sampled.doctags.txt b/tests/data/groundtruth/docling_v2/redp5110_sampled.doctags.txt index e3454a06..8665cccf 100644 --- a/tests/data/groundtruth/docling_v2/redp5110_sampled.doctags.txt +++ b/tests/data/groundtruth/docling_v2/redp5110_sampled.doctags.txt @@ -3,13 +3,13 @@
-Row and Column Access Control Support in IBM DB2 for i +Row and Column Access Control Support in IBM DB2 for i Implement roles and separation of duties Leverage row permissions on the database Protect columns by defining column masks Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan Redpaper -Contents +Contents Notices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii @@ -61,23 +61,26 @@
-Highlights +Highlights + GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH +
Power Services -DB2 for i Center of Excellence +DB2 for i Center of ExcellenceExpert help to achieve your business requirements -We build confident, satisfied clients +We build confident, satisfied clientsNo one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you.Because no one else is IBM.With combined experiences and direct access to development groups, we're the experts in IBM DB2® for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions. -Who we are, some of what we do +Who we are, some of what we doGlobal CoE engagements cover topics including: + r Database performance and scalability r Advanced SQL knowledge and skills transfer r Business intelligence and analytics @@ -87,7 +90,8 @@ r Data-centric architecture and design r Extremely large database and overcoming limits to growth r ISV education and enablement -Preface + +PrefaceThis IBMfi Redpaper™ publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment.This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed.This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US. @@ -99,50 +103,56 @@ Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office.Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master's degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com . -Authors +Authors
Chapter 1.1 -Securing and protecting IBM DB2 data +Securing and protecting IBM DB2 dataRecent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record.Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement.This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter: + GLYPH Security fundamentals GLYPH Current state of IBM i security GLYPH DB2 for i security controls -1.1 Security fundamentals + +1.1 Security fundamentalsBefore reviewing database security techniques, there are two fundamental steps in securing information assets that must be described: + GLYPH First, and most important, is the definition of a company's security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability. The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured. +A security policy is what defines whether the system and its settings are secure (or not). + GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets. +With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i. -1.2 Current state of IBM i security +1.2 Current state of IBM i securityBecause of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE.Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company's most valuable assets, which is the data.Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today's connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data.Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage. -1.3.1 Existing row and column control +1.3.1 Existing row and column controlSome IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator.Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases.Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view. -
-2.1.6 Change Function Usage CL command +2.1.6 Change Function Usage CL commandThe following CL commands can be used to work with, display, or change function usage IDs: + GLYPH Work Function Usage ( WRKFCNUSG ) GLYPH Change Function Usage ( CHGFCNUSG ) GLYPH Display Function Usage ( DSPFCNUSG ) +For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED) -2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view +2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE viewThe FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view. -
Figure 1-2 Existing row and column controls Figure 1-2 Existing row and column controls Table 2-1 FUNCTION_USAGE view
@@ -155,7 +165,7 @@ To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1.Example 2-1 Query to determine who has authority to define and manage RCACSELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id='QIBM_DB_SECADM' ORDER BY user_name; -2.2 Separation of duties +2.2 Separation of dutiesSeparation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa's job description was only to manage its security.In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table. @@ -163,7 +173,6 @@ QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table.A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself.Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools. -
Table 2-1 FUNCTION_USAGE view Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority
@@ -181,16 +190,13 @@ MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)XXCHANGE PLAN CACHE SIZE procedure (currently does not check authority)XX
Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority
-The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules. -Figure 3-1 CREATE PERMISSION SQL statement
The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules.Figure 3-1 CREATE PERMISSION SQL statement
-Column mask +Column mask A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number. Table 3-1 summarizes these special registers and their values. -Table 3-1 Special registers and their corresponding values @@ -200,21 +206,21 @@ SYSTEM_USERThe authorization ID that initiated the connection.
Table 3-1 Special registers and their corresponding values
Figure 3-5 shows the difference in the special register values when an adopted authority is used: + GLYPH A user connects to the server using the user profile ALICE. GLYPH USER and CURRENT USER initially have the same value of ALICE. GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE's authority when it is called. GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority. GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE. -Figure 3-5 Special registers and adopted authority +
Figure 3-5 Special registers and adopted authority
-3.2.2 Built-in global variables +3.2.2 Built-in global variables Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables. IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic. Table 3-2 lists the nine built-in global variables. -Table 3-2 Built-in global variables @@ -229,58 +235,70 @@ ROUTINE_SPECIFIC_NAMEVARCHAR(128)Name of the currently running routineROUTINE_TYPECHAR(1)Type of the currently running routine
Table 3-2 Built-in global variables
-3.3 VERIFY_GROUP_FOR_USER function +3.3 VERIFY_GROUP_FOR_USER function The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error. If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value. Here is an example of using the VERIFY_GROUP_FOR_USER function: + 1. There are user profiles for MGR, JANE, JUDY, and TONY. 2. The user profile JANE specifies a group profile of MGR. 3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1: + VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY') RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ; + 2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones: -Human Resources can see the unmasked TAX_ID of the employees. -Employees can see only their own unmasked TAX_ID. -Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234). -Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX. To implement this column mask, run the SQL statement that is shown in Example 3-9. + Example 3-9 Creating a mask on the TAX_ID column CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; + 3. Figure 3-10 shows the masks that are created in the HR_SCHEMA. -Figure 3-10 Column masks shown in System i Navigator +
Figure 3-10 Column masks shown in System i Navigator
-3.6.6 Activating RCAC +3.6.6 Activating RCAC Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps: + 1. Run the SQL statements that are shown in Example 3-10. -Example 3-10 Activating RCAC on the EMPLOYEES table + +Example 3-10 Activating RCAC on the EMPLOYEES table + /* Active Row Access Control (permissions) */ + /* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL; */ + 2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas  HR_SCHEMA  Tables , right-click the EMPLOYEES table, and click Definition . -Figure 3-11 Selecting the EMPLOYEES table from System i Navigator +
Figure 3-11 Selecting the EMPLOYEES table from System i Navigator
+ 2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause. -Figure 4-68 Visual Explain with RCAC enabled +
Figure 4-68 Visual Explain with RCAC enabled
+ 3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause. -Figure 4-69 Index advice with no RCAC +
Figure 4-69 Index advice with no RCAC
THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ; Back cover -Row and Column Access Control Support in IBM DB2 for i +Row and Column Access Control Support in IBM DB2 for i Implement roles and separation of duties Leverage row permissions on the database Protect columns by defining column masks diff --git a/tests/data/groundtruth/docling_v2/redp5110_sampled.pages.json b/tests/data/groundtruth/docling_v2/redp5110_sampled.pages.json index 5765cb25..c83414a2 100644 --- a/tests/data/groundtruth/docling_v2/redp5110_sampled.pages.json +++ b/tests/data/groundtruth/docling_v2/redp5110_sampled.pages.json @@ -1 +1 @@ -[{"page_no": 0, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}]}}, {"page_no": 1, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"3": {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}, {"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}]}}, {"page_no": 2, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": []}}, {"page_no": 3, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}, {"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}]}}, {"page_no": 4, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}]}}, {"page_no": 5, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "body": [{"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "headers": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 6, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 7, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"17": {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 8, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"9": {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}, {"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}]}}, {"page_no": 9, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}, {"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}]}}, {"page_no": 10, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "SignedonasALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 218.71170000000004, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"14": {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}, {"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}]}}, {"page_no": 11, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"12": {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 12, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}, {"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "body": [{"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}]}}, {"page_no": 13, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 14, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}, {"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}]}}, {"page_no": 15, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "body": [{"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 16, "size": {"width": 612.0, "height": 792.0}, "cells": [], "predictions": {"layout": {"clusters": []}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [], "body": [], "headers": []}}, {"page_no": 17, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "body": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "headers": [{"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}]}}] +[{"page_no": 0, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Redpaper", "bbox": {"l": 314.70001, "t": 711.50856, "r": 580.52002, "b": 773.772959, "coord_origin": "TOPLEFT"}}]}, "text": "Redpaper"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 3, "text": "Front cover", "bbox": {"l": 287.82001, "t": 28.54803000000004, "r": 418.83356, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Front cover"}, {"label": "section_header", "id": 3, "page_no": 0, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 35.68840408325195, "t": 82.3943099975586, "r": 584.64288, "b": 166.40553283691406, "coord_origin": "TOPLEFT"}, "confidence": 0.8281131386756897, "cells": [{"id": 4, "text": "Row and Column Access Control ", "bbox": {"l": 35.700001, "t": 84.58654999999987, "r": 584.64288, "b": 122.82097999999996, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Support in IBM DB2 for i", "bbox": {"l": 35.700001, "t": 127.60668999999996, "r": 447.66919000000007, "b": 165.84113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 4, "page_no": 0, "cluster": {"id": 4, "label": "text", "bbox": {"l": 497.0279846191406, "t": 573.8836669921875, "r": 581.8246459960938, "b": 699.171630859375, "coord_origin": "TOPLEFT"}, "confidence": 0.7621812224388123, "cells": [{"id": 6, "text": "Jim Bainbridge", "bbox": {"l": 509.22, "t": 575.71201, "r": 581.34119, "b": 586.392, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Hernando Bedoya", "bbox": {"l": 497.70001, "t": 589.752, "r": 581.3736, "b": 600.43199, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Rob Bestgen", "bbox": {"l": 521.40002, "t": 603.73199, "r": 581.34003, "b": 614.4119900000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "Mike Cain", "bbox": {"l": 534.12, "t": 617.71199, "r": 581.31598, "b": 628.39198, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Dan Cruikshank", "bbox": {"l": 505.43999999999994, "t": 631.75198, "r": 581.29077, "b": 642.4319800000001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Jim Denton", "bbox": {"l": 527.22003, "t": 645.73198, "r": 581.29926, "b": 656.41197, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Doug Mack", "bbox": {"l": 527.64001, "t": 659.71198, "r": 581.30884, "b": 670.39197, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Tom McKinley", "bbox": {"l": 514.38, "t": 673.75197, "r": 581.38678, "b": 684.43197, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Kent Milligan", "bbox": {"l": 518.82001, "t": 687.73197, "r": 581.33759, "b": 698.411972, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge Hernando Bedoya Rob Bestgen Mike Cain Dan Cruikshank Jim Denton Doug Mack Tom McKinley Kent Milligan"}, {"label": "text", "id": 5, "page_no": 0, "cluster": {"id": 5, "label": "text", "bbox": {"l": 35.0073127746582, "t": 294.7938232421875, "r": 216.00064, "b": 325.56058, "coord_origin": "TOPLEFT"}, "confidence": 0.8502883315086365, "cells": [{"id": 15, "text": "Implement roles and separation ", "bbox": {"l": 36.119999, "t": 296.13828, "r": 216.00064, "b": 308.58047, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "of duties", "bbox": {"l": 36.119999, "t": 313.11838000000006, "r": 84.527145, "b": 325.56058, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 6, "page_no": 0, "cluster": {"id": 6, "label": "text", "bbox": {"l": 34.56448745727539, "t": 348.9540710449219, "r": 202.45404, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}, "confidence": 0.8639552593231201, "cells": [{"id": 17, "text": "Leverage", "bbox": {"l": 35.759315, "t": 350.13881999999995, "r": 80.409691, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "row permissions on ", "bbox": {"l": 151.8503, "t": 350.13881999999995, "r": 202.45404, "b": 362.58102, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "the", "bbox": {"l": 35.759315, "t": 367.11893, "r": 50.758106, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "database", "bbox": {"l": 86.755211, "t": 367.11893, "r": 107.75352000000001, "b": 379.56112999999993, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 7, "page_no": 0, "cluster": {"id": 7, "label": "text", "bbox": {"l": 35.171409606933594, "t": 402.6540832519531, "r": 195.2753, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}, "confidence": 0.842113196849823, "cells": [{"id": 21, "text": "Protect", "bbox": {"l": 36.059887, "t": 404.13937, "r": 73.020607, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "columns by defining ", "bbox": {"l": 152.62831, "t": 404.13937, "r": 195.2753, "b": 416.58157, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "column", "bbox": {"l": 36.059887, "t": 421.11948, "r": 73.311806, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "masks", "bbox": {"l": 73.311806, "t": 421.11948, "r": 117.33681, "b": 433.56167999999997, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "picture", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 513.4560546875, "t": 26.085098266601562, "r": 586.1583251953125, "b": 54.81915283203125, "coord_origin": "TOPLEFT"}, "confidence": 0.9272357225418091, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 36.894657135009766, "t": 749.8662109375, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}, "confidence": 0.7180292010307312, "cells": [{"id": 0, "text": "ibm.com", "bbox": {"l": 36.900002, "t": 751.23, "r": 98.600998, "b": 765.105, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "/redbooks", "bbox": {"l": 98.580002, "t": 751.23, "r": 164.4585, "b": 765.105, "coord_origin": "TOPLEFT"}}]}, "text": "ibm.com /redbooks"}]}}, {"page_no": 1, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"3": {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}, {"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 1, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.6857681274414, "t": 73.01808166503906, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9508246779441833, "cells": [{"id": 2, "text": "Contents", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 168.73441, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Contents"}, {"label": "table", "id": 3, "page_no": 1, "cluster": {"id": 3, "label": "table", "bbox": {"l": 136.15103149414062, "t": 132.03030395507812, "r": 549.84723, "b": 715.6527709960938, "coord_origin": "TOPLEFT"}, "confidence": 0.9803490042686462, "cells": [{"id": 3, "text": "Notices", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Trademarks", "bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 530.05121, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "viii", "bbox": {"l": 535.5827, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "DB2 for i Center of Excellence", "bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Preface", "bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Now you can become a published author, too!", "bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 530.00812, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "xiii", "bbox": {"l": 535.53925, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "xiii", "bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Stay connected to IBM Redbooks", "bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 529.48242, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "xiv", "bbox": {"l": 534.99829, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Chapter 1. Securing and protecting IBM DB2 data", "bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 373.17566, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": " . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 375.11798, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "1", "bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1.1", "bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 150.88702, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "bbox": {"l": 156.5226, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "1.2", "bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 150.62746, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15923, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "2", "bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "1.3", "bbox": {"l": 136.79807, "t": 299.62595, "r": 150.84943, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "bbox": {"l": 156.46996, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "1.3.1", "bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 173.38289, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.92932, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "4", "bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "1.3.2", "bbox": {"l": 151.1972, "t": 324.64548, "r": 173.4189, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97432, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "5", "bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "Chapter 2. Roles and separation of duties", "bbox": {"l": 136.79704, "t": 347.14511, "r": 336.82071, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 338.99701, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "7", "bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "2.1", "bbox": {"l": 136.79704, "t": 359.14493, "r": 150.644, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18277, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "8", "bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "2.1.1", "bbox": {"l": 151.1972, "t": 371.62482, "r": 173.60995, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "bbox": {"l": 176.41154, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "8", "bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "2.1.2", "bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 173.41664, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97151, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "8", "bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "2.1.3", "bbox": {"l": 151.1972, "t": 396.64435, "r": 173.41859, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.97394, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "9", "bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "2.1.4", "bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 173.38629, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "Database Information function: QIBM_DB_SYSMON", "bbox": {"l": 178.93356, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": ". . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 536.08411, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "9", "bbox": {"l": 541.63135, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "2.1.5", "bbox": {"l": 151.1972, "t": 421.60413, "r": 173.44926, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.01228, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "9", "bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "2.1.6", "bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 173.32208, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8533, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "10", "bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "2.1.7", "bbox": {"l": 151.1972, "t": 446.62366, "r": 173.35822, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "bbox": {"l": 178.89848, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "10", "bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "2.2", "bbox": {"l": 136.79704, "t": 459.10355, "r": 150.85457, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "bbox": {"l": 156.47758, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Chapter 3. Row and Column Access Control", "bbox": {"l": 136.79703, "t": 481.60318, "r": 348.68503, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 350.09741, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "13", "bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "3.1", "bbox": {"l": 136.79703, "t": 493.603, "r": 150.70105, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.26266, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "14", "bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "3.1.1", "bbox": {"l": 151.19719, "t": 506.14264, "r": 173.35429, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "Row permission and column mask definitions", "bbox": {"l": 178.89357, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 383.74713, "t": 506.14264, "r": 530.5379, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "14", "bbox": {"l": 536.07721, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "3.1.2", "bbox": {"l": 151.19719, "t": 518.62253, "r": 173.44292, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00435, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "16", "bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "3.2", "bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 150.64432, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 81, "text": "Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.18323, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 82, "text": "18", "bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}}, {"id": 83, "text": "3.2.1", "bbox": {"l": 151.19719, "t": 543.64204, "r": 173.41321, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 84, "text": "Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.96722, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 85, "text": "18", "bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}}, {"id": 86, "text": "3.2.2", "bbox": {"l": 151.19719, "t": 556.12192, "r": 173.35269, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 87, "text": "Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89156, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 88, "text": "19", "bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}}, {"id": 89, "text": "3.3", "bbox": {"l": 136.79703, "t": 568.66156, "r": 150.62514, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 90, "text": "VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.15639, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 91, "text": "20", "bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}}, {"id": 92, "text": "3.4", "bbox": {"l": 136.79703, "t": 581.14143, "r": 150.63004, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 93, "text": "Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "bbox": {"l": 156.16325, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 94, "text": "21", "bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}}, {"id": 95, "text": "3.5", "bbox": {"l": 136.79701, "t": 593.62131, "r": 150.64413, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 96, "text": "SELECT, INSERT, and UPDATE behavior with RCAC", "bbox": {"l": 156.18298, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 97, "text": ". . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 400.32065, "t": 593.62131, "r": 530.48358, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 98, "text": "22", "bbox": {"l": 536.0224, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}}, {"id": 99, "text": "3.6", "bbox": {"l": 136.79701, "t": 606.16095, "r": 150.6642, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 100, "text": "Human resources example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 156.21107, "t": 606.16095, "r": 530.56512, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 101, "text": "22", "bbox": {"l": 536.112, "t": 606.16095, "r": 547.20575, "b": 615.37395, "coord_origin": "TOPLEFT"}}, {"id": 102, "text": "3.6.1", "bbox": {"l": 151.19717, "t": 618.64082, "r": 173.41692, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 103, "text": "Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "bbox": {"l": 178.97185, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 104, "text": "23", "bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}}, {"id": 105, "text": "3.6.2", "bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 173.32271, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 106, "text": "Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.8541, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 107, "text": "23", "bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}}, {"id": 108, "text": "3.6.3", "bbox": {"l": 151.19717, "t": 643.66034, "r": 173.32227, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 109, "text": "Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.85353, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 110, "text": "24", "bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}}, {"id": 111, "text": "3.6.4", "bbox": {"l": 151.19717, "t": 656.14021, "r": 173.35289, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 112, "text": "Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.89182, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 113, "text": "25", "bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}}, {"id": 114, "text": "3.6.5", "bbox": {"l": 151.19717, "t": 668.62009, "r": 173.35289, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 115, "text": "Defining and creating column masks", "bbox": {"l": 178.89182, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 116, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 344.98996, "t": 668.62009, "r": 530.54413, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 117, "text": "26", "bbox": {"l": 536.08301, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}}, {"id": 118, "text": "3.6.6", "bbox": {"l": 151.19717, "t": 681.15973, "r": 173.38359, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 119, "text": "Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 178.93019, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 120, "text": "28", "bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}}, {"id": 121, "text": "3.6.7", "bbox": {"l": 151.19717, "t": 693.63961, "r": 173.32332, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 122, "text": "Demonstrating data access with RCAC", "bbox": {"l": 178.85486, "t": 693.63961, "r": 350.80011, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 123, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 356.33163, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 124, "text": "29", "bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}}, {"id": 125, "text": "3.6.8", "bbox": {"l": 151.19717, "t": 706.119492, "r": 173.44592, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 126, "text": "Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "bbox": {"l": 179.00812, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}}, {"id": 127, "text": "32", "bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 43, "num_cols": 2, "table_cells": [{"bbox": {"l": 136.8, "t": 132.64862000000005, "r": 172.89404, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Notices", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01952, "t": 132.64862000000005, "r": 547.18982, "b": 141.86163, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 145.12847999999997, "r": 189.86537, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Trademarks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 195.39685, "t": 145.12847999999997, "r": 547.18286, "b": 154.34149000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 167.62811, "r": 279.39731, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DB2 for i Center of Excellence", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 280.61942, "t": 167.62811, "r": 547.1908, "b": 176.84113000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79901, "t": 190.12775, "r": 172.84424, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Preface", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 175.01852, "t": 190.12775, "r": 547.18286, "b": 199.34076000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 202.60760000000005, "r": 547.18085, "b": 211.82061999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 215.14721999999995, "r": 339.18292, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Now you can become a published author, too!", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.71411, "t": 215.14721999999995, "r": 547.13879, "b": 224.36023, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79803, "t": 227.62707999999998, "r": 529.99506, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.5495, "t": 227.62707999999998, "r": 547.19788, "b": 236.84009000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "xiii", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 240.10693000000003, "r": 284.02866, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Stay connected to IBM Redbooks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.54449, "t": 240.10693000000003, "r": 547.12115, "b": 249.31994999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 262.60657000000003, "r": 536.09589, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 1. Securing and protecting IBM DB2 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64685, "t": 262.60657000000003, "r": 547.19781, "b": 271.81958, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "1", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79808, "t": 274.60637999999994, "r": 549.84723, "b": 283.8194, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.1 Security fundamentals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 287.14606000000003, "r": 536.12933, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.2 Current state of IBM i security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66113, "t": 287.14606000000003, "r": 547.19287, "b": 296.35904, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "2", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79807, "t": 299.62595, "r": 549.84723, "b": 308.83893, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3 DB2 for i security controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 312.1058300000001, "r": 536.05511, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.1 Existing row and column control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6015, "t": 312.1058300000001, "r": 547.14795, "b": 321.3188200000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "4", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 324.64548, "r": 536.08008, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "1.3.2 New controls: Row and Column Access Control. . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.6355, "t": 324.64548, "r": 547.19092, "b": 333.8584599999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 13, "end_row_offset_idx": 14, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "5", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 347.14511, "r": 536.09088, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 2. Roles and separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.64282, "t": 347.14511, "r": 547.19476, "b": 356.35809, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 14, "end_row_offset_idx": 15, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "7", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 359.14493, "r": 536.12714, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1 Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.66589, "t": 359.14493, "r": 547.20471, "b": 368.35791, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 15, "end_row_offset_idx": 16, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 371.62482, "r": 535.9527, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.1 DDM and DRDA application server access: QIBM_DB_DDMDRDA . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.55585, "t": 371.62482, "r": 547.15906, "b": 380.8378000000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 16, "end_row_offset_idx": 17, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 384.10470999999995, "r": 536.04108, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.2 Toolbox application server access: QIBM_DB_ZDA. . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59595, "t": 384.10470999999995, "r": 547.15082, "b": 393.31769, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 17, "end_row_offset_idx": 18, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "8", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 396.64435, "r": 536.07489, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.3 Database Administrator function: QIBM_DB_SQLADM . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.63025, "t": 396.64435, "r": 547.18561, "b": 405.85733, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 18, "end_row_offset_idx": 19, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 409.12424000000004, "r": 411.27048, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.4 Database Information function: QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 416.81775, "t": 409.12424000000004, "r": 547.17865, "b": 418.33722, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 19, "end_row_offset_idx": 20, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . 9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 421.60413, "r": 536.03589, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.5 Security Administrator function: QIBM_DB_SECADM . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 541.59894, "t": 421.60413, "r": 547.16193, "b": 430.81711, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 20, "end_row_offset_idx": 21, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "9", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 434.1437700000001, "r": 530.57318, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.6 Change Function Usage CL command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10443, "t": 434.1437700000001, "r": 547.16687, "b": 443.35675, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 21, "end_row_offset_idx": 22, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.1972, "t": 446.62366, "r": 530.53522, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0755, "t": 446.62366, "r": 547.15601, "b": 455.83663999999993, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 22, "end_row_offset_idx": 23, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79704, "t": 459.10355, "r": 547.25659, "b": 468.31653, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 23, "end_row_offset_idx": 24, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "2.2 Separation of duties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 481.60318, "r": 530.53961, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Chapter 3. Row and Column Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09167, "t": 481.60318, "r": 547.1958, "b": 490.81616, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 24, "end_row_offset_idx": 25, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "13", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 493.603, "r": 530.4809, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1 Explanation of RCAC and the concept of access control . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04248, "t": 493.603, "r": 547.16571, "b": 502.81598, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 25, "end_row_offset_idx": 26, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 506.14264, "r": 378.20786, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.1 Row permission and column mask definitions", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 383.74713, "t": 506.14264, "r": 547.15576, "b": 515.35562, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 26, "end_row_offset_idx": 27, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . 14", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 518.62253, "r": 530.43475, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.1.2 Enabling and activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99622, "t": 518.62253, "r": 547.11908, "b": 527.83551, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 27, "end_row_offset_idx": 28, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "16", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 531.1621700000001, "r": 530.52808, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2 Special registers and built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06702, "t": 531.1621700000001, "r": 547.14484, "b": 540.37517, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 28, "end_row_offset_idx": 29, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 543.64204, "r": 530.49786, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.1 Special registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.05188, "t": 543.64204, "r": 547.15991, "b": 552.8550399999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 29, "end_row_offset_idx": 30, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "18", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19719, "t": 556.12192, "r": 530.56024, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.2.2 Built-in global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09912, "t": 556.12192, "r": 547.17688, "b": 565.33492, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 30, "end_row_offset_idx": 31, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "19", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 568.66156, "r": 530.53027, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.3 VERIFY_GROUP_FOR_USER function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.06152, "t": 568.66156, "r": 547.12402, "b": 577.87456, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 31, "end_row_offset_idx": 32, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "20", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79703, "t": 581.14143, "r": 530.62994, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.4 Establishing and controlling accessibility by using the RCAC rule text . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.16315, "t": 581.14143, "r": 547.22955, "b": 590.35443, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 32, "end_row_offset_idx": 33, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "21", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 136.79701, "t": 593.62131, "r": 394.7818, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 34, "end_row_offset_idx": 35, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.5 SELECT, INSERT, and UPDATE behavior with RCAC", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 400.32065, "t": 593.62131, "r": 547.1001, "b": 602.8343, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 33, "end_row_offset_idx": 34, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . 22", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 618.64082, "r": 530.49139, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.1 Assigning the QIBM_DB_SECADM function ID to the consultants. . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.04633, "t": 618.64082, "r": 547.15619, "b": 627.85382, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 35, "end_row_offset_idx": 36, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 631.1206999999999, "r": 530.56458, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.2 Creating group profiles for the users and their roles . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.09601, "t": 631.1206999999999, "r": 547.15875, "b": 640.3336899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 36, "end_row_offset_idx": 37, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "23", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 643.66034, "r": 530.55695, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.3 Demonstrating data access without RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.0882, "t": 643.66034, "r": 547.15076, "b": 652.87334, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 37, "end_row_offset_idx": 38, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "24", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 656.14021, "r": 530.53412, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.4 Defining and creating row permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.073, "t": 656.14021, "r": 547.15088, "b": 665.35321, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 38, "end_row_offset_idx": 39, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "25", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 668.62009, "r": 339.45105, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.5 Defining and creating column masks", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 344.98996, "t": 668.62009, "r": 547.16089, "b": 677.83309, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 39, "end_row_offset_idx": 40, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 681.15973, "r": 530.54102, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.6 Activating RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.08765, "t": 681.15973, "r": 547.18085, "b": 690.37273, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 40, "end_row_offset_idx": 41, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "28", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 693.63961, "r": 530.57507, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.7 Demonstrating data access with RCAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 536.10663, "t": 693.63961, "r": 547.16968, "b": 702.852615, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 41, "end_row_offset_idx": 42, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "29", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 151.19717, "t": 706.119492, "r": 530.43628, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "3.6.8 Demonstrating data access with a view and RCAC . . . . . . . . . . . . . . . . . . . . . . .", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 535.99847, "t": 706.119492, "r": 547.12286, "b": 715.332497, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 42, "end_row_offset_idx": 43, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "32", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 1, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.751060485839844, "t": 754.6969604492188, "r": 257.24335, "b": 764.1015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9473134875297546, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 1, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.3257446289062, "t": 754.0830688476562, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.892595112323761, "cells": [{"id": 1, "text": "iii", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25928, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "iii"}]}}, {"page_no": 2, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 0, "page_no": 2, "cluster": {"id": 0, "label": "text", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 0, "text": "DB2 for i Center of Excellence", "bbox": {"l": 64.800003, "t": 74.48395000000005, "r": 235.8624, "b": 85.58398, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 1, "page_no": 2, "cluster": {"id": 1, "label": "text", "bbox": {"l": 93.67039489746094, "t": 137.6368408203125, "r": 233.99973, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}, "confidence": 0.7431555986404419, "cells": [{"id": 1, "text": "Solution Brief", "bbox": {"l": 94.132698, "t": 148.63933999999995, "r": 139.54634, "b": 155.33642999999995, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "IBM Systems Lab Services and Training", "bbox": {"l": 94.134933, "t": 138.45012999999994, "r": 233.99973, "b": 145.22162000000003, "coord_origin": "TOPLEFT"}}]}, "text": "Solution Brief IBM Systems Lab Services and Training"}, {"label": "text", "id": 2, "page_no": 2, "cluster": {"id": 2, "label": "text", "bbox": {"l": 460.8193359375, "t": 138.33865356445312, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.7798991203308105, "cells": [{"id": 3, "text": "Power Services", "bbox": {"l": 461.08859000000007, "t": 138.40752999999995, "r": 506.26178, "b": 145.42181000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Power Services"}, {"label": "section_header", "id": 3, "page_no": 2, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 280.07391357421875, "t": 237.7128143310547, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}, "confidence": 0.7587877511978149, "cells": [{"id": 4, "text": "DB2 for i", "bbox": {"l": 280.24011, "t": 239.34265000000005, "r": 354.57022, "b": 256.26153999999997, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Center of Excellence ", "bbox": {"l": 280.24011, "t": 259.70165999999995, "r": 463.80942, "b": 276.62054, "coord_origin": "TOPLEFT"}}]}, "text": "DB2 for i Center of Excellence"}, {"label": "text", "id": 4, "page_no": 2, "cluster": {"id": 4, "label": "text", "bbox": {"l": 279.51953125, "t": 277.1574401855469, "r": 483.7276916503906, "b": 288.63494873046875, "coord_origin": "TOPLEFT"}, "confidence": 0.7965629696846008, "cells": [{"id": 6, "text": "Expert help to achieve your business requirements", "bbox": {"l": 280.24011, "t": 277.59027000000003, "r": 483.29572, "b": 287.45959, "coord_origin": "TOPLEFT"}}]}, "text": "Expert help to achieve your business requirements"}, {"label": "section_header", "id": 5, "page_no": 2, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 279.468994140625, "t": 315.0786437988281, "r": 443.375732421875, "b": 324.89566, "coord_origin": "TOPLEFT"}, "confidence": 0.891353964805603, "cells": [{"id": 7, "text": "We build confident, satisfied clients", "bbox": {"l": 280.24011, "t": 315.88161999999994, "r": 443.28210000000007, "b": 324.89566, "coord_origin": "TOPLEFT"}}]}, "text": "We build confident, satisfied clients"}, {"label": "text", "id": 6, "page_no": 2, "cluster": {"id": 6, "label": "text", "bbox": {"l": 279.530517578125, "t": 327.26470947265625, "r": 488.15466, "b": 345.5077209472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9560743570327759, "cells": [{"id": 8, "text": "No one else has the vast consulting experiences, skills sharing and ", "bbox": {"l": 280.24011, "t": 327.37595, "r": 488.15466, "b": 334.77994, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "renown service offerings to do what we can do for you.", "bbox": {"l": 280.24011, "t": 337.55551, "r": 452.34018, "b": 344.9595, "coord_origin": "TOPLEFT"}}]}, "text": "No one else has the vast consulting experiences, skills sharing and renown service offerings to do what we can do for you."}, {"label": "text", "id": 7, "page_no": 2, "cluster": {"id": 7, "label": "text", "bbox": {"l": 280.0453186035156, "t": 356.5709533691406, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}, "confidence": 0.8260757923126221, "cells": [{"id": 10, "text": "Because no one else is IBM.", "bbox": {"l": 280.24011, "t": 357.3260200000001, "r": 367.86023, "b": 364.73001, "coord_origin": "TOPLEFT"}}]}, "text": "Because no one else is IBM."}, {"label": "text", "id": 8, "page_no": 2, "cluster": {"id": 8, "label": "text", "bbox": {"l": 279.70794677734375, "t": 376.26104736328125, "r": 500.32104000000004, "b": 425.3092041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9764720797538757, "cells": [{"id": 11, "text": "With combined experiences and direct access to development groups, ", "bbox": {"l": 280.24011, "t": 377.09801999999996, "r": 500.32104000000004, "b": 384.50201, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of ", "bbox": {"l": 280.24011, "t": 387.27759, "r": 479.25497, "b": 394.68158, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Excellence (CoE) can help you achieve-perhaps reexamine and ", "bbox": {"l": 280.24011, "t": 397.45715, "r": 483.4667400000001, "b": 404.86115, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "exceed-your business requirements and gain more confidence and ", "bbox": {"l": 280.24011, "t": 407.63672, "r": 492.97656, "b": 415.04071000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "satisfaction in IBM product data management products and solutions.", "bbox": {"l": 280.24011, "t": 417.81628, "r": 498.87, "b": 425.22027999999995, "coord_origin": "TOPLEFT"}}]}, "text": "With combined experiences and direct access to development groups, we\u2019re the experts in IBM DB2\u00ae for i. The DB2 for i Center of Excellence (CoE) can help you achieve-perhaps reexamine and exceed-your business requirements and gain more confidence and satisfaction in IBM product data management products and solutions."}, {"label": "section_header", "id": 9, "page_no": 2, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 279.6336669921875, "t": 437.1227722167969, "r": 435.1236572265625, "b": 446.86807, "coord_origin": "TOPLEFT"}, "confidence": 0.8492124676704407, "cells": [{"id": 16, "text": "Who we are, some of what we do", "bbox": {"l": 280.24011, "t": 437.85403, "r": 434.83205999999996, "b": 446.86807, "coord_origin": "TOPLEFT"}}]}, "text": "Who we are, some of what we do"}, {"label": "text", "id": 10, "page_no": 2, "cluster": {"id": 10, "label": "text", "bbox": {"l": 279.4736328125, "t": 449.2602233886719, "r": 434.56316999999996, "b": 457.4661865234375, "coord_origin": "TOPLEFT"}, "confidence": 0.8440341353416443, "cells": [{"id": 17, "text": "Global CoE engagements cover topics including:", "bbox": {"l": 280.24011, "t": 449.34824000000003, "r": 434.56316999999996, "b": 456.75223, "coord_origin": "TOPLEFT"}}]}, "text": "Global CoE engagements cover topics including:"}, {"label": "list_item", "id": 11, "page_no": 2, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 279.74200439453125, "t": 468.3660583496094, "r": 402.1675109863281, "b": 476.5758972167969, "coord_origin": "TOPLEFT"}, "confidence": 0.9239599108695984, "cells": [{"id": 18, "text": "r ", "bbox": {"l": 280.24011, "t": 470.95236, "r": 284.0993, "b": 476.16074, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Database performance and scalability", "bbox": {"l": 287.28961, "t": 469.11826, "r": 401.56412, "b": 476.52225, "coord_origin": "TOPLEFT"}}]}, "text": "r Database performance and scalability"}, {"label": "list_item", "id": 12, "page_no": 2, "cluster": {"id": 12, "label": "list_item", "bbox": {"l": 279.7657165527344, "t": 478.64898681640625, "r": 424.99646, "b": 486.78228759765625, "coord_origin": "TOPLEFT"}, "confidence": 0.9239722490310669, "cells": [{"id": 20, "text": "r ", "bbox": {"l": 280.24011, "t": 481.13507, "r": 284.0993, "b": 486.34344, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Advanced SQL knowledge and skills transfer", "bbox": {"l": 287.28961, "t": 479.30096, "r": 424.99646, "b": 486.70496, "coord_origin": "TOPLEFT"}}]}, "text": "r Advanced SQL knowledge and skills transfer"}, {"label": "list_item", "id": 13, "page_no": 2, "cluster": {"id": 13, "label": "list_item", "bbox": {"l": 279.9660339355469, "t": 489.48355, "r": 392.2996520996094, "b": 497.1912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9157897233963013, "cells": [{"id": 22, "text": "r ", "bbox": {"l": 280.24011, "t": 491.31766, "r": 284.0993, "b": 496.52603, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Business intelligence and analytics", "bbox": {"l": 287.28961, "t": 489.48355, "r": 392.15845, "b": 496.88754, "coord_origin": "TOPLEFT"}}]}, "text": "r Business intelligence and analytics"}, {"label": "list_item", "id": 14, "page_no": 2, "cluster": {"id": 14, "label": "list_item", "bbox": {"l": 279.9432067871094, "t": 499.5702819824219, "r": 339.94354, "b": 507.2607727050781, "coord_origin": "TOPLEFT"}, "confidence": 0.8733457922935486, "cells": [{"id": 24, "text": "r ", "bbox": {"l": 280.24011, "t": 501.50037, "r": 284.0993, "b": 506.70874, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "DB2 Web Query", "bbox": {"l": 287.28961, "t": 499.66626, "r": 339.94354, "b": 507.07025, "coord_origin": "TOPLEFT"}}]}, "text": "r DB2 Web Query"}, {"label": "list_item", "id": 15, "page_no": 2, "cluster": {"id": 15, "label": "list_item", "bbox": {"l": 279.68328857421875, "t": 509.4296875, "r": 504.21795654296875, "b": 517.4979858398438, "coord_origin": "TOPLEFT"}, "confidence": 0.924924373626709, "cells": [{"id": 26, "text": "r ", "bbox": {"l": 280.24011, "t": 511.68295, "r": 284.0993, "b": 516.8913299999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Query/400 modernization for better reporting and analysis capabilities", "bbox": {"l": 287.28961, "t": 509.84885, "r": 504.19314999999995, "b": 517.25284, "coord_origin": "TOPLEFT"}}]}, "text": "r Query/400 modernization for better reporting and analysis capabilities"}, {"label": "list_item", "id": 16, "page_no": 2, "cluster": {"id": 16, "label": "list_item", "bbox": {"l": 279.66998291015625, "t": 520.03156, "r": 423.0022, "b": 528.0305786132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9109311103820801, "cells": [{"id": 28, "text": "r ", "bbox": {"l": 280.24011, "t": 521.8656599999999, "r": 284.0993, "b": 527.07404, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Database modernization and re-engineering", "bbox": {"l": 287.28961, "t": 520.03156, "r": 423.0022, "b": 527.4355499999999, "coord_origin": "TOPLEFT"}}]}, "text": "r Database modernization and re-engineering"}, {"label": "list_item", "id": 17, "page_no": 2, "cluster": {"id": 17, "label": "list_item", "bbox": {"l": 279.7203674316406, "t": 529.9635620117188, "r": 400.07391357421875, "b": 537.8783569335938, "coord_origin": "TOPLEFT"}, "confidence": 0.8977466225624084, "cells": [{"id": 30, "text": "r ", "bbox": {"l": 280.24011, "t": 532.04825, "r": 284.0993, "b": 537.2566400000001, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Data-centric architecture and design", "bbox": {"l": 287.28961, "t": 530.21414, "r": 399.65173, "b": 537.61813, "coord_origin": "TOPLEFT"}}]}, "text": "r Data-centric architecture and design"}, {"label": "list_item", "id": 18, "page_no": 2, "cluster": {"id": 18, "label": "list_item", "bbox": {"l": 279.7815856933594, "t": 539.8663330078125, "r": 467.2125549316406, "b": 547.80074, "coord_origin": "TOPLEFT"}, "confidence": 0.9218330383300781, "cells": [{"id": 32, "text": "r ", "bbox": {"l": 280.24011, "t": 542.23083, "r": 284.0993, "b": 547.43924, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "Extremely large database and overcoming limits to growth", "bbox": {"l": 287.28961, "t": 540.39674, "r": 466.77881, "b": 547.80074, "coord_origin": "TOPLEFT"}}]}, "text": "r Extremely large database and overcoming limits to growth"}, {"label": "list_item", "id": 19, "page_no": 2, "cluster": {"id": 19, "label": "list_item", "bbox": {"l": 279.89080810546875, "t": 550.0230102539062, "r": 382.3631591796875, "b": 557.98344, "coord_origin": "TOPLEFT"}, "confidence": 0.9075438976287842, "cells": [{"id": 34, "text": "r ", "bbox": {"l": 280.24011, "t": 552.41354, "r": 284.0993, "b": 557.62195, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "ISV education and enablement", "bbox": {"l": 287.28961, "t": 550.5794500000001, "r": 382.20956, "b": 557.98344, "coord_origin": "TOPLEFT"}}]}, "text": "r ISV education and enablement"}, {"label": "section_header", "id": 20, "page_no": 2, "cluster": {"id": 20, "label": "section_header", "bbox": {"l": 144.19781494140625, "t": 327.06201171875, "r": 188.74681, "b": 337.35504150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.9098501205444336, "cells": [{"id": 36, "text": "Highlights ", "bbox": {"l": 144.88921, "t": 327.46163999999993, "r": 188.74681, "b": 336.81406, "coord_origin": "TOPLEFT"}}]}, "text": "Highlights"}, {"label": "list_item", "id": 21, "page_no": 2, "cluster": {"id": 21, "label": "list_item", "bbox": {"l": 144.4553985595703, "t": 344.037109375, "r": 242.87389000000002, "b": 358.68942, "coord_origin": "TOPLEFT"}, "confidence": 0.9571698904037476, "cells": [{"id": 37, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 346.01953, "r": 148.68732, "b": 350.60168, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 345.21707, "r": 177.25424, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 176.9472, "t": 345.21707, "r": 187.11098, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 186.7914, "t": 345.21707, "r": 222.95989999999998, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.65912, "t": 345.21707, "r": 229.55193999999997, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "GLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 229.2261, "t": 345.21707, "r": 242.87389000000002, "b": 350.85666, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 353.04984, "r": 178.77066, "b": 358.68942, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 178.46362, "t": 353.04984, "r": 207.16908, "b": 358.68942, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 22, "page_no": 2, "cluster": {"id": 22, "label": "list_item", "bbox": {"l": 144.40879821777344, "t": 366.6461486816406, "r": 259.2287, "b": 389.2373, "coord_origin": "TOPLEFT"}, "confidence": 0.9634581804275513, "cells": [{"id": 45, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 368.73465, "r": 148.68732, "b": 373.3168, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "GLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 151.9388, "t": 367.93219, "r": 166.05655, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.73697, "t": 367.93219, "r": 186.40289, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH", "bbox": {"l": 186.09586, "t": 367.93219, "r": 203.61617, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 203.30286, "t": 367.93219, "r": 211.82489, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 211.49905, "t": 367.93219, "r": 218.16002, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 217.83418, "t": 367.93219, "r": 241.30737, "b": 373.57178, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 375.76495, "r": 174.46577, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 174.15874, "t": 375.76495, "r": 214.4128, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 214.11829, "t": 375.76495, "r": 221.01110999999997, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 220.68527, "t": 375.76495, "r": 247.52341000000004, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "GLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 247.21637, "t": 375.76495, "r": 259.2287, "b": 381.40454, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 383.59772, "r": 184.61703, "b": 389.2373, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 23, "page_no": 2, "cluster": {"id": 23, "label": "list_item", "bbox": {"l": 144.23313903808594, "t": 397.1644592285156, "r": 249.83562, "b": 412.3861083984375, "coord_origin": "TOPLEFT"}, "confidence": 0.9541196823120117, "cells": [{"id": 58, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 399.28265, "r": 148.68732, "b": 403.86481000000003, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "GLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.9388, "t": 398.48019, "r": 165.36099, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 165.04141, "t": 398.48019, "r": 173.56345, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.23761, "t": 398.48019, "r": 185.95174, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 185.63216, "t": 398.48019, "r": 204.42448, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 204.11118, "t": 398.48019, "r": 235.29178, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH", "bbox": {"l": 234.99099999999999, "t": 398.48019, "r": 249.83562, "b": 404.11978, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.93253, "t": 406.31296, "r": 173.41306, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 173.10602, "t": 406.31296, "r": 185.0118, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 184.69221, "t": 406.31296, "r": 206.3858, "b": 411.95255, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 206.07249, "t": 406.31296, "r": 228.24231000000003, "b": 411.95255, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "list_item", "id": 24, "page_no": 2, "cluster": {"id": 24, "label": "list_item", "bbox": {"l": 144.35208129882812, "t": 420.17449951171875, "r": 234.25163000000003, "b": 434.66763, "coord_origin": "TOPLEFT"}, "confidence": 0.9440370798110962, "cells": [{"id": 69, "text": "GLYPHGLYPH", "bbox": {"l": 144.88921, "t": 421.99773999999996, "r": 148.68732, "b": 426.5799, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 151.9388, "t": 421.1952800000001, "r": 155.43533, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 154.73979, "t": 421.1952800000001, "r": 166.06282, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 165.74324, "t": 421.1952800000001, "r": 195.84607, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 195.53903, "t": 421.1952800000001, "r": 202.43185, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 202.10602, "t": 421.1952800000001, "r": 222.87220999999997, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 222.55890000000002, "t": 421.1952800000001, "r": 229.57077, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "GLYPH GLYPH", "bbox": {"l": 229.24492999999998, "t": 421.1952800000001, "r": 234.25163000000003, "b": 426.83487, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 151.92627, "t": 429.02805, "r": 181.42754, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 181.1205, "t": 429.02805, "r": 201.07835, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 79, "text": "GLYPHGLYPHGLYPH", "bbox": {"l": 200.76505, "t": 429.02805, "r": 207.65787, "b": 434.66763, "coord_origin": "TOPLEFT"}}, {"id": 80, "text": "GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH", "bbox": {"l": 207.33203, "t": 429.02805, "r": 232.07098000000002, "b": 434.66763, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPHGLYPH GLYPH GLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPH GLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH GLYPHGLYPHGLYPH GLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPHGLYPH"}, {"label": "picture", "id": 25, "page_no": 2, "cluster": {"id": 25, "label": "picture", "bbox": {"l": 64.16704559326172, "t": 603.50634765625, "r": 258.77435302734375, "b": 688.1282348632812, "coord_origin": "TOPLEFT"}, "confidence": 0.8925828337669373, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 26, "page_no": 2, "cluster": {"id": 26, "label": "picture", "bbox": {"l": 143.39866638183594, "t": 270.2610778808594, "r": 179.56256103515625, "b": 285.621337890625, "coord_origin": "TOPLEFT"}, "confidence": 0.7491760849952698, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": []}}, {"page_no": 3, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}, {"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "section_header", "id": 2, "page_no": 3, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.800003, "t": 73.10313415527344, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.9174708724021912, "cells": [{"id": 2, "text": "Preface", "bbox": {"l": 64.800003, "t": 73.84802000000002, "r": 151.46161, "b": 96.04803000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Preface"}, {"label": "text", "id": 3, "page_no": 3, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.75503540039062, "t": 131.914306640625, "r": 547.30823, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}, "confidence": 0.9869155883789062, "cells": [{"id": 3, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM ", "bbox": {"l": 136.8, "t": 132.64862000000005, "r": 542.91888, "b": 141.86163, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the ", "bbox": {"l": 136.79984, "t": 144.64844000000005, "r": 526.65509, "b": 153.86145, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "function and advantages of controlling access to data in a comprehensive and transparent ", "bbox": {"l": 136.79984, "t": 156.64824999999996, "r": 536.82135, "b": 165.86127, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "way. This publication helps you understand the capabilities of RCAC and provides examples ", "bbox": {"l": 136.79987, "t": 168.64806999999996, "r": 544.67975, "b": 177.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "of defining, creating, and implementing the row permissions and column masks in a relational ", "bbox": {"l": 136.79987, "t": 180.64788999999996, "r": 547.30823, "b": 189.86090000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "database environment.", "bbox": {"l": 136.79987, "t": 192.64770999999996, "r": 238.32117, "b": 201.86072000000001, "coord_origin": "TOPLEFT"}}]}, "text": "This IBMfi Redpaper\u2122 publication provides information about the IBM i 7.2 feature of IBM DB2fi for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 4, "page_no": 3, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.94647216796875, "t": 214.0637664794922, "r": 546.4657, "b": 260.1856384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.987220287322998, "cells": [{"id": 9, "text": "This paper is intended for database engineers, data-centric application developers, and ", "bbox": {"l": 136.79987, "t": 214.60748, "r": 524.18518, "b": 223.82050000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security officers who want to design and implement RCAC as a part of their data control and ", "bbox": {"l": 136.79987, "t": 226.6073, "r": 546.4657, "b": 235.82030999999995, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "governance policy. A solid background in IBM i object level security, DB2 for i relational ", "bbox": {"l": 136.79987, "t": 238.60712, "r": 521.25488, "b": 247.82012999999995, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "database concepts, and SQL is assumed.", "bbox": {"l": 136.79987, "t": 250.60693000000003, "r": 321.69434, "b": 259.81994999999995, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "section_header", "id": 5, "page_no": 3, "cluster": {"id": 5, "label": "section_header", "bbox": {"l": 64.22550201416016, "t": 287.1894226074219, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}, "confidence": 0.9255504608154297, "cells": [{"id": 13, "text": "Authors", "bbox": {"l": 64.800003, "t": 288.3006, "r": 125.36661, "b": 303.0636, "coord_origin": "TOPLEFT"}}]}, "text": "Authors"}, {"label": "text", "id": 6, "page_no": 3, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.71319580078125, "t": 319.8118591308594, "r": 547.23669, "b": 342.1517028808594, "coord_origin": "TOPLEFT"}, "confidence": 0.9713318347930908, "cells": [{"id": 14, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with ", "bbox": {"l": 136.8, "t": 320.62871999999993, "r": 547.23669, "b": 329.8417099999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "the International Technical Support Organization (ITSO), Rochester, Minnesota US.", "bbox": {"l": 136.8, "t": 332.62854, "r": 505.05518, "b": 341.84152, "coord_origin": "TOPLEFT"}}]}, "text": "This paper was produced by the IBM DB2 for i Center of Excellence team in partnership with the International Technical Support Organization (ITSO), Rochester, Minnesota US."}, {"label": "text", "id": 7, "page_no": 3, "cluster": {"id": 7, "label": "text", "bbox": {"l": 262.6522521972656, "t": 374.687255859375, "r": 541.25079, "b": 516.9314575195312, "coord_origin": "TOPLEFT"}, "confidence": 0.9842760562896729, "cells": [{"id": 16, "text": "Jim Bainbridge", "bbox": {"l": 263.39957, "t": 375.64877, "r": 335.7251, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " is a senior DB2 consultant on the DB2 for i ", "bbox": {"l": 335.69922, "t": 375.64877, "r": 529.34259, "b": 384.86176, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "Center of Excellence team in the IBM Lab Services and ", "bbox": {"l": 263.3996, "t": 387.64859, "r": 511.50717, "b": 396.86157, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Training organization. His primary role is training and ", "bbox": {"l": 263.3996, "t": 399.64841, "r": 499.077, "b": 408.86139, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "implementation services for IBM DB2 Web Query for i and ", "bbox": {"l": 263.3996, "t": 411.64822, "r": 522.51996, "b": 420.86121, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "business analytics. Jim began his career with IBM 30 years ago ", "bbox": {"l": 263.3996, "t": 423.64804, "r": 541.25079, "b": 432.86102, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "in the IBM Rochester Development Lab, where he developed ", "bbox": {"l": 263.3996, "t": 435.64786, "r": 534.71411, "b": 444.86084, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "cooperative processing products that paired IBM PCs with IBM ", "bbox": {"l": 263.3996, "t": 447.64767, "r": 541.22375, "b": 456.86066, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "S/36 and AS/.400 systems. In the years since, Jim has held ", "bbox": {"l": 263.3996, "t": 459.64749, "r": 528.91016, "b": 468.86047, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "numerous technical roles, including independent software ", "bbox": {"l": 263.3996, "t": 471.64731, "r": 520.24207, "b": 480.86029, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "vendors technical support on a broad range of IBM ", "bbox": {"l": 263.3996, "t": 483.64713, "r": 490.6967200000001, "b": 492.86011, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "technologies and products, and supporting customers in the ", "bbox": {"l": 263.3996, "t": 495.64694, "r": 530.95514, "b": 504.85992, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "IBM Executive Briefing Center and IBM Project Office.", "bbox": {"l": 263.3996, "t": 507.64676, "r": 501.62973, "b": 516.85974, "coord_origin": "TOPLEFT"}}]}, "text": "Jim Bainbridge is a senior DB2 consultant on the DB2 for i Center of Excellence team in the IBM Lab Services and Training organization. His primary role is training and implementation services for IBM DB2 Web Query for i and business analytics. Jim began his career with IBM 30 years ago in the IBM Rochester Development Lab, where he developed cooperative processing products that paired IBM PCs with IBM S/36 and AS/.400 systems. In the years since, Jim has held numerous technical roles, including independent software vendors technical support on a broad range of IBM technologies and products, and supporting customers in the IBM Executive Briefing Center and IBM Project Office."}, {"label": "text", "id": 8, "page_no": 3, "cluster": {"id": 8, "label": "text", "bbox": {"l": 262.4736328125, "t": 526.50830078125, "r": 541.27374, "b": 680.83716, "coord_origin": "TOPLEFT"}, "confidence": 0.9823779463768005, "cells": [{"id": 29, "text": "Hernando Bedoya", "bbox": {"l": 263.3996, "t": 527.62653, "r": 348.38229, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": " is a Senior IT Specialist at STG Lab ", "bbox": {"l": 348.41916, "t": 527.62653, "r": 512.3429, "b": 536.83952, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Services and Training in Rochester, Minnesota. He writes ", "bbox": {"l": 263.3996, "t": 539.62633, "r": 519.26306, "b": 548.83932, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "extensively and teaches IBM classes worldwide in all areas of ", "bbox": {"l": 263.3996, "t": 551.62613, "r": 538.40308, "b": 560.8391300000001, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "DB2 for i. Before joining STG Lab Services, he worked in the ", "bbox": {"l": 263.3996, "t": 563.62593, "r": 533.95715, "b": 572.83893, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ITSO for nine years writing multiple IBM Redbooksfi ", "bbox": {"l": 263.3996, "t": 575.62573, "r": 496.94464, "b": 584.8387299999999, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "publications. He also worked for IBM Colombia as an IBM ", "bbox": {"l": 263.3996, "t": 587.62553, "r": 520.38562, "b": 596.83853, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "AS/400fi IT Specialist doing presales support for the Andean ", "bbox": {"l": 263.3996, "t": 599.62534, "r": 535.99078, "b": 608.83833, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "countries. He has 28 years of experience in the computing field ", "bbox": {"l": 263.3996, "t": 611.62514, "r": 541.27374, "b": 620.83813, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "and has taught database classes in Colombian universities. He ", "bbox": {"l": 263.3996, "t": 623.62494, "r": 541.26465, "b": 632.83794, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "holds a Master\u2019s degree in Computer Science from EAFIT, ", "bbox": {"l": 263.3996, "t": 635.62474, "r": 523.22211, "b": 644.8377399999999, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Colombia. His areas of expertise are database technology, ", "bbox": {"l": 263.3996, "t": 647.62454, "r": 524.77386, "b": 656.83754, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "performance, and data warehousing. Hernando can be ", "bbox": {"l": 263.3996, "t": 659.62434, "r": 508.27124, "b": 668.83735, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "contacted at ", "bbox": {"l": 263.3996, "t": 671.62415, "r": 320.63568, "b": 680.83716, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "hbedoya@us.ibm.com", "bbox": {"l": 320.63971, "t": 671.77356, "r": 410.57852, "b": 680.54832, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": ".", "bbox": {"l": 410.5795, "t": 671.62415, "r": 413.34839, "b": 680.83716, "coord_origin": "TOPLEFT"}}]}, "text": "Hernando Bedoya is a Senior IT Specialist at STG Lab Services and Training in Rochester, Minnesota. He writes extensively and teaches IBM classes worldwide in all areas of DB2 for i. Before joining STG Lab Services, he worked in the ITSO for nine years writing multiple IBM Redbooksfi publications. He also worked for IBM Colombia as an IBM AS/400fi IT Specialist doing presales support for the Andean countries. He has 28 years of experience in the computing field and has taught database classes in Colombian universities. He holds a Master\u2019s degree in Computer Science from EAFIT, Colombia. His areas of expertise are database technology, performance, and data warehousing. Hernando can be contacted at hbedoya@us.ibm.com ."}, {"label": "picture", "id": 9, "page_no": 3, "cluster": {"id": 9, "label": "picture", "bbox": {"l": 145.41448974609375, "t": 527.2447509765625, "r": 252.08840942382812, "b": 635.383056640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9871657490730286, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 10, "page_no": 3, "cluster": {"id": 10, "label": "picture", "bbox": {"l": 142.52883911132812, "t": 375.0449523925781, "r": 251.47850036621094, "b": 503.20648193359375, "coord_origin": "TOPLEFT"}, "confidence": 0.9862572550773621, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 3, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.724002838134766, "t": 754.7037963867188, "r": 257.24335, "b": 764.1082153320312, "coord_origin": "TOPLEFT"}, "confidence": 0.9469243884086609, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 3, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 538.058349609375, "t": 754.3980102539062, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9040942788124084, "cells": [{"id": 1, "text": "xi", "bbox": {"l": 538.85999, "t": 754.848721, "r": 547.25031, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "xi"}]}}, {"page_no": 4, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 4, "cluster": {"id": 2, "label": "text", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "Chapter 1.", "bbox": {"l": 81.0, "t": 268.54272000000003, "r": 115.13253, "b": 274.98071000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 1."}, {"label": "section_header", "id": 3, "page_no": 4, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 136.68006896972656, "t": 253.28985595703125, "r": 547.30475, "b": 309.8782, "coord_origin": "TOPLEFT"}, "confidence": 0.9377049207687378, "cells": [{"id": 3, "text": "Securing and protecting IBM DB2 ", "bbox": {"l": 136.8, "t": 254.88635, "r": 547.30475, "b": 278.91785000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "data", "bbox": {"l": 136.8, "t": 285.84671, "r": 190.29802, "b": 309.8782, "coord_origin": "TOPLEFT"}}]}, "text": "Securing and protecting IBM DB2 data"}, {"label": "text", "id": 4, "page_no": 4, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.15219116210938, "t": 347.975341796875, "r": 547.25403, "b": 430.37359619140625, "coord_origin": "TOPLEFT"}, "confidence": 0.9868757724761963, "cells": [{"id": 5, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting ", "bbox": {"l": 136.8, "t": 348.70871, "r": 542.25665, "b": 357.92169, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 ", "bbox": {"l": 136.80096, "t": 360.70853, "r": 544.96643, "b": 369.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "data breaches have occurred since 2005, exposing over 600 million records of data. The ", "bbox": {"l": 136.79965, "t": 372.70853, "r": 529.53839, "b": 381.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ ", "bbox": {"l": 136.79965, "t": 384.7083400000001, "r": 535.32874, "b": 393.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "revealed that the average cost of a data breach increased in 2013 by 15% globally and ", "bbox": {"l": 136.80026, "t": 396.70853, "r": 521.64374, "b": 405.92150999999996, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for ", "bbox": {"l": 136.80026, "t": 408.7083400000001, "r": 547.13135, "b": 417.92133000000007, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "each lost record containing sensitive information increased more than 9% to $145 per record. ", "bbox": {"l": 136.80023, "t": 420.70816, "r": 547.25403, "b": 429.92114, "coord_origin": "TOPLEFT"}}]}, "text": "Recent news headlines are filled with reports of data breaches and cyber-attacks impacting global businesses of all sizes. The Identity Theft Resource Center$^{1}$ reports that almost 5000 data breaches have occurred since 2005, exposing over 600 million records of data. The financial cost of these data breaches is skyrocketing. Studies from the Ponemon Institute$^{2}$ revealed that the average cost of a data breach increased in 2013 by 15% globally and resulted in a brand equity loss of $9.4 million per attack. The average cost that is incurred for each lost record containing sensitive information increased more than 9% to $145 per record."}, {"label": "text", "id": 5, "page_no": 4, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.05917358398438, "t": 442.1153564453125, "r": 527.2063, "b": 488.44146728515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9865864515304565, "cells": [{"id": 12, "text": "Businesses must make a serious effort to secure their data and recognize that securing ", "bbox": {"l": 136.80023, "t": 442.7277199999999, "r": 525.06482, "b": 451.9407, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "information assets is a cost of doing business. In many parts of the world and in many ", "bbox": {"l": 136.80025, "t": 454.72754000000003, "r": 518.26825, "b": 463.94052, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "industries, securing the data is required by law and subject to audits. Data security is no ", "bbox": {"l": 136.80025, "t": 466.72736, "r": 527.2063, "b": 475.94034, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "longer an option; it is a requirement.", "bbox": {"l": 136.80025, "t": 478.72717, "r": 296.31067, "b": 487.94016, "coord_origin": "TOPLEFT"}}]}, "text": "Businesses must make a serious effort to secure their data and recognize that securing information assets is a cost of doing business. In many parts of the world and in many industries, securing the data is required by law and subject to audits. Data security is no longer an option; it is a requirement."}, {"label": "text", "id": 6, "page_no": 4, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.5961456298828, "t": 500.0403137207031, "r": 547.15515, "b": 521.89978, "coord_origin": "TOPLEFT"}, "confidence": 0.9734498858451843, "cells": [{"id": 16, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics ", "bbox": {"l": 136.80025, "t": 500.68698, "r": 547.15515, "b": 509.89996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "are covered in this chapter:", "bbox": {"l": 136.80025, "t": 512.6868, "r": 257.28036, "b": 521.89978, "coord_origin": "TOPLEFT"}}]}, "text": "This chapter describes how you can secure and protect data in DB2 for i. The following topics are covered in this chapter:"}, {"label": "list_item", "id": 7, "page_no": 4, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.86915588378906, "t": 528.70361328125, "r": 250.23166999999998, "b": 539.0433349609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9374465346336365, "cells": [{"id": 18, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 529.87576, "r": 141.78024, "b": 538.6505099999999, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "Security fundamentals", "bbox": {"l": 151.20041, "t": 529.72635, "r": 250.23166999999998, "b": 538.93936, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Security fundamentals"}, {"label": "list_item", "id": 8, "page_no": 4, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.742431640625, "t": 540.7142333984375, "r": 282.98114, "b": 551.373291015625, "coord_origin": "TOPLEFT"}, "confidence": 0.933772087097168, "cells": [{"id": 20, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 541.87556, "r": 141.78024, "b": 550.65031, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Current state of IBM i security", "bbox": {"l": 151.20041, "t": 541.72617, "r": 282.98114, "b": 550.93916, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Current state of IBM i security"}, {"label": "list_item", "id": 9, "page_no": 4, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.86570739746094, "t": 552.4489135742188, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}, "confidence": 0.946319043636322, "cells": [{"id": 22, "text": "GLYPH", "bbox": {"l": 136.80025, "t": 553.87537, "r": 141.78024, "b": 562.65012, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "DB2 for i security controls", "bbox": {"l": 151.20041, "t": 553.72597, "r": 264.88187, "b": 562.93896, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH DB2 for i security controls"}, {"label": "text", "id": 10, "page_no": 4, "cluster": {"id": 10, "label": "text", "bbox": {"l": 500.39999, "t": 92.66075897216797, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}, "confidence": 0.7054197788238525, "cells": [{"id": 24, "text": "1", "bbox": {"l": 500.39999, "t": 93.16870000000006, "r": 522.61774, "b": 130.13171, "coord_origin": "TOPLEFT"}}]}, "text": "1"}, {"label": "footnote", "id": 11, "page_no": 4, "cluster": {"id": 11, "label": "footnote", "bbox": {"l": 135.7418975830078, "t": 716.2816772460938, "r": 258.36255, "b": 725.5408325195312, "coord_origin": "TOPLEFT"}, "confidence": 0.7673327326774597, "cells": [{"id": 25, "text": "$^{1 }$http://www.idtheftcenter.org", "bbox": {"l": 136.8, "t": 717.750061, "r": 258.36255, "b": 724.780441, "coord_origin": "TOPLEFT"}}]}, "text": "$^{1 }$http://www.idtheftcenter.org"}, {"label": "footnote", "id": 12, "page_no": 4, "cluster": {"id": 12, "label": "footnote", "bbox": {"l": 136.19522094726562, "t": 725.296142578125, "r": 234.42526245117188, "b": 735.2681274414062, "coord_origin": "TOPLEFT"}, "confidence": 0.7980051636695862, "cells": [{"id": 26, "text": "$^{2 }$http://www.ponemon.org", "bbox": {"l": 136.8, "t": 727.709961, "r": 231.90257, "b": 734.740341, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "/", "bbox": {"l": 231.84036, "t": 727.590263, "r": 234.05881, "b": 734.97176, "coord_origin": "TOPLEFT"}}]}, "text": "$^{2 }$http://www.ponemon.org /"}, {"label": "picture", "id": 13, "page_no": 4, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 32.05508804321289, "t": 70.42637634277344, "r": 239.62692260742188, "b": 238.041015625, "coord_origin": "TOPLEFT"}, "confidence": 0.7604197263717651, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 4, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.68400573730469, "t": 754.6591796875, "r": 257.24335, "b": 764.1430053710938, "coord_origin": "TOPLEFT"}, "confidence": 0.9370514154434204, "cells": [{"id": 0, "text": "' Copyright IBM Corp. 2014. All rights reserved.", "bbox": {"l": 64.800003, "t": 755.538002, "r": 257.24335, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "' Copyright IBM Corp. 2014. All rights reserved."}, {"label": "page_footer", "id": 1, "page_no": 4, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 541.2396240234375, "t": 754.2869873046875, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8513588309288025, "cells": [{"id": 1, "text": "1", "bbox": {"l": 541.67987, "t": 754.848721, "r": 547.21765, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "1"}]}}, {"page_no": 5, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "body": [{"label": "section_header", "id": 2, "page_no": 5, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.33735656738281, "t": 73.39700317382812, "r": 267.40582, "b": 89.61579895019531, "coord_origin": "TOPLEFT"}, "confidence": 0.9651358127593994, "cells": [{"id": 2, "text": "1.1", "bbox": {"l": 64.800003, "t": 74.34069999999997, "r": 87.524292, "b": 89.1037, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Security fundamentals", "bbox": {"l": 92.069145, "t": 74.34069999999997, "r": 267.40582, "b": 89.1037, "coord_origin": "TOPLEFT"}}]}, "text": "1.1 Security fundamentals"}, {"label": "text", "id": 3, "page_no": 5, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.23556518554688, "t": 106.02731323242188, "r": 545.00482, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9663435220718384, "cells": [{"id": 4, "text": "Before reviewing database security techniques, there are two fundamental steps in securing ", "bbox": {"l": 136.8, "t": 106.6087, "r": 545.00482, "b": 115.82172000000003, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "information assets that must be described:", "bbox": {"l": 136.8, "t": 118.60852, "r": 324.47229, "b": 127.82153000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Before reviewing database security techniques, there are two fundamental steps in securing information assets that must be described:"}, {"label": "list_item", "id": 4, "page_no": 5, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.66490173339844, "t": 134.66909790039062, "r": 547.16425, "b": 181.15467834472656, "coord_origin": "TOPLEFT"}, "confidence": 0.9835494756698608, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 135.79749000000004, "r": 141.78, "b": 144.57227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "First, and most important, is the definition of a company\u2019s ", "bbox": {"l": 151.20016, "t": 135.64806999999996, "r": 406.67715, "b": 144.86108000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "security policy", "bbox": {"l": 406.67999, "t": 135.12487999999996, "r": 471.03815, "b": 145.18262000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": ". Without a ", "bbox": {"l": 470.04001000000005, "t": 135.64862000000005, "r": 520.59796, "b": 144.86163, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "security policy, there is no definition of what are acceptable practices for using, accessing, ", "bbox": {"l": 151.19949, "t": 147.64844000000005, "r": 547.16425, "b": 156.86145, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "and storing information by who, what, when, where, and how. A security policy should ", "bbox": {"l": 151.19948, "t": 159.64824999999996, "r": 531.02008, "b": 168.86127, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "minimally address three things: confidentiality, integrity, and availability.", "bbox": {"l": 151.19948, "t": 171.64806999999996, "r": 463.3578499999999, "b": 180.86108000000002, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH First, and most important, is the definition of a company\u2019s security policy . Without a security policy, there is no definition of what are acceptable practices for using, accessing, and storing information by who, what, when, where, and how. A security policy should minimally address three things: confidentiality, integrity, and availability."}, {"label": "list_item", "id": 5, "page_no": 5, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 150.2132110595703, "t": 187.9793701171875, "r": 547.26086, "b": 270.5374450683594, "coord_origin": "TOPLEFT"}, "confidence": 0.8077321648597717, "cells": [{"id": 13, "text": "The monitoring and assessment of adherence to the security policy determines whether ", "bbox": {"l": 151.19948, "t": 188.62787000000003, "r": 541.70514, "b": 197.84087999999997, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "your security strategy is working. Often, IBM security consultants are asked to perform ", "bbox": {"l": 151.19948, "t": 200.62769000000003, "r": 534.83002, "b": 209.84069999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "security assessments for companies without regard to the security policy. Although these ", "bbox": {"l": 151.19948, "t": 212.62750000000005, "r": 545.79773, "b": 221.84051999999997, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "assessments can be useful for observing how the system is defined and how data is being ", "bbox": {"l": 151.19948, "t": 224.62732000000005, "r": 547.26086, "b": 233.84033, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "accessed, they cannot determine the level of security without a security policy. Without a ", "bbox": {"l": 151.19948, "t": 236.62714000000005, "r": 543.91528, "b": 245.84015, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "security policy, it really is not an assessment as much as it is a baseline for monitoring the ", "bbox": {"l": 151.19948, "t": 248.62694999999997, "r": 547.25989, "b": 257.83997, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "changes in the security settings that are captured.", "bbox": {"l": 151.19946, "t": 260.62676999999996, "r": 371.8692, "b": 269.83978, "coord_origin": "TOPLEFT"}}]}, "text": "The monitoring and assessment of adherence to the security policy determines whether your security strategy is working. Often, IBM security consultants are asked to perform security assessments for companies without regard to the security policy. Although these assessments can be useful for observing how the system is defined and how data is being accessed, they cannot determine the level of security without a security policy. Without a security policy, it really is not an assessment as much as it is a baseline for monitoring the changes in the security settings that are captured."}, {"label": "text", "id": 6, "page_no": 5, "cluster": {"id": 6, "label": "text", "bbox": {"l": 150.1995086669922, "t": 276.76263427734375, "r": 541.992, "b": 287.0709533691406, "coord_origin": "TOPLEFT"}, "confidence": 0.7967227697372437, "cells": [{"id": 20, "text": "A security policy is what defines whether the system and its settings are secure (or not). ", "bbox": {"l": 151.19946, "t": 277.60657000000003, "r": 541.992, "b": 286.81958, "coord_origin": "TOPLEFT"}}]}, "text": "A security policy is what defines whether the system and its settings are secure (or not)."}, {"label": "list_item", "id": 7, "page_no": 5, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.4777374267578, "t": 293.81439208984375, "r": 547.15826, "b": 376.5453796386719, "coord_origin": "TOPLEFT"}, "confidence": 0.9837487936019897, "cells": [{"id": 21, "text": "GLYPH", "bbox": {"l": 136.7993, "t": 294.7955600000001, "r": 141.7793, "b": 303.57034, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "The second fundamental in securing data assets is the use of ", "bbox": {"l": 151.19946, "t": 294.64618, "r": 425.86029, "b": 303.85916, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "resource security", "bbox": {"l": 425.82001, "t": 294.12496999999996, "r": 501.60065, "b": 304.18265, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": ". If ", "bbox": {"l": 500.64001, "t": 294.64871, "r": 514.49933, "b": 303.86169, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "implemented properly, resource security prevents data breaches from both internal and ", "bbox": {"l": 151.20038, "t": 306.64853, "r": 537.87421, "b": 315.86151, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "external intrusions. Resource security controls are closely tied to the part of the security ", "bbox": {"l": 151.20038, "t": 318.64834999999994, "r": 541.33636, "b": 327.86133, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "policy that defines who should have access to what information resources. A hacker might ", "bbox": {"l": 151.20038, "t": 330.64816, "r": 547.15826, "b": 339.86115, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be good enough to get through your company firewalls and sift his way through to your ", "bbox": {"l": 151.20038, "t": 342.64798, "r": 534.86066, "b": 351.86096, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "system, but if they do not have explicit access to your database, the hacker cannot ", "bbox": {"l": 151.20038, "t": 354.6478, "r": 517.00739, "b": 363.86078, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "compromise your information assets.", "bbox": {"l": 151.20038, "t": 366.64761, "r": 314.03534, "b": 375.8606, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH The second fundamental in securing data assets is the use of resource security . If implemented properly, resource security prevents data breaches from both internal and external intrusions. Resource security controls are closely tied to the part of the security policy that defines who should have access to what information resources. A hacker might be good enough to get through your company firewalls and sift his way through to your system, but if they do not have explicit access to your database, the hacker cannot compromise your information assets."}, {"label": "text", "id": 8, "page_no": 5, "cluster": {"id": 8, "label": "text", "bbox": {"l": 135.90879821777344, "t": 388.12286376953125, "r": 535.36169, "b": 410.3081359863281, "coord_origin": "TOPLEFT"}, "confidence": 0.9622000455856323, "cells": [{"id": 31, "text": "With your eyes now open to the importance of securing information assets, the rest of this ", "bbox": {"l": 136.80022, "t": 388.60742, "r": 535.36169, "b": 397.82040000000006, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "chapter reviews the methods that are available for securing database resources on IBM i. ", "bbox": {"l": 136.80022, "t": 400.60724, "r": 532.755, "b": 409.82022, "coord_origin": "TOPLEFT"}}]}, "text": "With your eyes now open to the importance of securing information assets, the rest of this chapter reviews the methods that are available for securing database resources on IBM i."}, {"label": "section_header", "id": 9, "page_no": 5, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 64.44733428955078, "t": 437.4118957519531, "r": 323.38391, "b": 453.6912841796875, "coord_origin": "TOPLEFT"}, "confidence": 0.9650285243988037, "cells": [{"id": 33, "text": "1.2", "bbox": {"l": 64.800003, "t": 438.30072, "r": 87.415726, "b": 453.06372, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Current state of IBM i security", "bbox": {"l": 91.93885, "t": 438.30072, "r": 323.38391, "b": 453.06372, "coord_origin": "TOPLEFT"}}]}, "text": "1.2 Current state of IBM i security"}, {"label": "text", "id": 10, "page_no": 5, "cluster": {"id": 10, "label": "text", "bbox": {"l": 136.1368408203125, "t": 469.76971435546875, "r": 547.31824, "b": 516.47802734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9848750233650208, "cells": [{"id": 35, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system ", "bbox": {"l": 136.8, "t": 470.62872, "r": 530.30463, "b": 479.84171, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "settings to protect their business data that is stored in DB2 for i. In most cases, this means no ", "bbox": {"l": 136.8, "t": 482.62854, "r": 547.31824, "b": 491.84152, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "data protection because the default setting for the Create default public authority (QCRTAUT) ", "bbox": {"l": 136.8, "t": 494.62836, "r": 547.19586, "b": 503.84134, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "system value is *CHANGE.", "bbox": {"l": 136.8, "t": 506.62817, "r": 257.04709, "b": 515.84116, "coord_origin": "TOPLEFT"}}]}, "text": "Because of the inherently secure nature of IBM i, many clients rely on the default system settings to protect their business data that is stored in DB2 for i. In most cases, this means no data protection because the default setting for the Create default public authority (QCRTAUT) system value is *CHANGE."}, {"label": "text", "id": 11, "page_no": 5, "cluster": {"id": 11, "label": "text", "bbox": {"l": 135.79974365234375, "t": 527.8772583007812, "r": 547.28442, "b": 585.85994, "coord_origin": "TOPLEFT"}, "confidence": 0.9848474860191345, "cells": [{"id": 39, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news ", "bbox": {"l": 136.8, "t": 528.64774, "r": 513.90448, "b": 537.86073, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "headlines and the significant costs that are involved with databases being compromised. This ", "bbox": {"l": 136.8, "t": 540.6475399999999, "r": 547.28442, "b": 549.86053, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "default security configuration makes it quite challenging to implement basic security policies. ", "bbox": {"l": 136.8, "t": 552.64734, "r": 546.27533, "b": 561.86034, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "A tighter implementation is required if you really want to protect one of your company\u2019s most ", "bbox": {"l": 136.8, "t": 564.64714, "r": 545.08014, "b": 573.86014, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "valuable assets, which is the data.", "bbox": {"l": 136.8, "t": 576.64694, "r": 287.80057, "b": 585.85994, "coord_origin": "TOPLEFT"}}]}, "text": "Even more disturbing is that many IBM i clients remain in this state, despite the news headlines and the significant costs that are involved with databases being compromised. This default security configuration makes it quite challenging to implement basic security policies. A tighter implementation is required if you really want to protect one of your company\u2019s most valuable assets, which is the data."}, {"label": "text", "id": 12, "page_no": 5, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.8997802734375, "t": 598.1246337890625, "r": 547.28326, "b": 680.4212036132812, "coord_origin": "TOPLEFT"}, "confidence": 0.9870820045471191, "cells": [{"id": 44, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default ", "bbox": {"l": 136.8, "t": 598.6665, "r": 547.28326, "b": 607.8795, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "configuration that gives all users access to the data. The theory is that data is protected by ", "bbox": {"l": 136.8, "t": 610.6663100000001, "r": 538.6767, "b": 619.8793000000001, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "the menu options controlling what database operations that the user can perform. This ", "bbox": {"l": 136.8, "t": 622.66611, "r": 520.35364, "b": 631.8791, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "approach is ineffective, even if the user profile is restricted from running interactive ", "bbox": {"l": 136.80002, "t": 634.6659099999999, "r": 502.77115000000003, "b": 643.87891, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "commands. The reason is that in today\u2019s connected world there are a multitude of interfaces ", "bbox": {"l": 136.80002, "t": 646.66571, "r": 545.16492, "b": 655.87871, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "into the system, from web browsers to PC clients, that bypass application menus. If there are ", "bbox": {"l": 136.80002, "t": 658.66551, "r": 547.23376, "b": 667.87852, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "no object-level controls, users of these newer interfaces have an open door to your data.", "bbox": {"l": 136.80002, "t": 670.66532, "r": 526.04187, "b": 679.87833, "coord_origin": "TOPLEFT"}}]}, "text": "Traditionally, IBM i applications have employed menu-based security to counteract this default configuration that gives all users access to the data. The theory is that data is protected by the menu options controlling what database operations that the user can perform. This approach is ineffective, even if the user profile is restricted from running interactive commands. The reason is that in today\u2019s connected world there are a multitude of interfaces into the system, from web browsers to PC clients, that bypass application menus. If there are no object-level controls, users of these newer interfaces have an open door to your data."}], "headers": [{"label": "page_footer", "id": 0, "page_no": 5, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.92394256591797, "t": 754.286865234375, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8889444470405579, "cells": [{"id": 0, "text": "2 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "2"}, {"label": "page_footer", "id": 1, "page_no": 5, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.81553649902344, "t": 754.6853637695312, "r": 328.72537, "b": 763.9682006835938, "coord_origin": "TOPLEFT"}, "confidence": 0.9476423859596252, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 6, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "text", "id": 2, "page_no": 6, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.9996337890625, "t": 70.63605499267578, "r": 544.30334, "b": 153.09298706054688, "coord_origin": "TOPLEFT"}, "confidence": 0.9872740507125854, "cells": [{"id": 2, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal ", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 541.19006, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "means that users should be given access only to the minimum set of data that is required to ", "bbox": {"l": 136.8, "t": 83.50847999999996, "r": 544.30334, "b": 92.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "perform their job. Often, users with object-level access are given access to row and column ", "bbox": {"l": 136.8, "t": 95.50829999999996, "r": 540.94299, "b": 104.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "values that are beyond what their business task requires because that object-level security ", "bbox": {"l": 136.80002, "t": 107.50811999999996, "r": 538.27454, "b": 116.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "provides an all-or-nothing solution. For example, object-level controls allow a manager to ", "bbox": {"l": 136.80002, "t": 119.50792999999999, "r": 530.23004, "b": 128.72095000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "access data about all employees. Most security policies limit a manager to accessing data ", "bbox": {"l": 136.80002, "t": 131.50775, "r": 536.26263, "b": 140.72076000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "only for the employees that they manage.", "bbox": {"l": 136.80002, "t": 143.50757, "r": 319.04318, "b": 152.72058000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Many businesses are trying to limit data access to a need-to-know basis. This security goal means that users should be given access only to the minimum set of data that is required to perform their job. Often, users with object-level access are given access to row and column values that are beyond what their business task requires because that object-level security provides an all-or-nothing solution. For example, object-level controls allow a manager to access data about all employees. Most security policies limit a manager to accessing data only for the employees that they manage."}, {"label": "section_header", "id": 3, "page_no": 6, "cluster": {"id": 3, "label": "section_header", "bbox": {"l": 64.4480209350586, "t": 172.2285919189453, "r": 301.46902, "b": 185.72744750976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9626136422157288, "cells": [{"id": 9, "text": "1.3.1", "bbox": {"l": 64.800003, "t": 173.33471999999995, "r": 94.033653, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Existing row and column control", "bbox": {"l": 97.687859, "t": 173.33471999999995, "r": 301.46902, "b": 185.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "1.3.1 Existing row and column control"}, {"label": "text", "id": 4, "page_no": 6, "cluster": {"id": 4, "label": "text", "bbox": {"l": 135.77957153320312, "t": 198.52076721191406, "r": 541.56738, "b": 257.1080322265625, "coord_origin": "TOPLEFT"}, "confidence": 0.9858148097991943, "cells": [{"id": 11, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL ", "bbox": {"l": 136.8, "t": 199.48870999999997, "r": 534.90112, "b": 208.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "views (or logical files) and application logic, as shown in Figure 1-2. However, ", "bbox": {"l": 136.8, "t": 211.48852999999997, "r": 480.47281000000004, "b": 220.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "application-based logic is easy to bypass with all of the different data access interfaces that ", "bbox": {"l": 136.8, "t": 223.48834, "r": 541.56738, "b": 232.70135000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) ", "bbox": {"l": 136.8, "t": 235.48816, "r": 537.39423, "b": 244.70117000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "and System i Navigator.", "bbox": {"l": 136.79999, "t": 247.48798, "r": 242.24352000000002, "b": 256.70099000000005, "coord_origin": "TOPLEFT"}}]}, "text": "Some IBM i clients have tried augmenting the all-or-nothing object-level security with SQL views (or logical files) and application logic, as shown in Figure 1-2. However, application-based logic is easy to bypass with all of the different data access interfaces that are provided by the IBM i operating system, such as Open Database Connectivity (ODBC) and System i Navigator."}, {"label": "text", "id": 5, "page_no": 6, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.9119110107422, "t": 268.6311340332031, "r": 547.4408, "b": 314.89898681640625, "coord_origin": "TOPLEFT"}, "confidence": 0.9875384569168091, "cells": [{"id": 16, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of ", "bbox": {"l": 136.79999, "t": 269.50757, "r": 526.88428, "b": 278.72058000000004, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "challenges. First, there is the complexity of managing all of the SQL view objects that are ", "bbox": {"l": 136.79999, "t": 281.50742, "r": 531.77087, "b": 290.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "used for securing data access. Second, scaling a view-based security solution can be difficult ", "bbox": {"l": 136.79999, "t": 293.50723000000005, "r": 547.4408, "b": 302.72021, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "as the amount of data grows and the number of users increases.", "bbox": {"l": 136.79999, "t": 305.50705, "r": 421.86725, "b": 314.72003, "coord_origin": "TOPLEFT"}}]}, "text": "Using SQL views to limit access to a subset of the data in a table also has its own set of challenges. First, there is the complexity of managing all of the SQL view objects that are used for securing data access. Second, scaling a view-based security solution can be difficult as the amount of data grows and the number of users increases."}, {"label": "text", "id": 6, "page_no": 6, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.0379638671875, "t": 326.60943603515625, "r": 547.23267, "b": 361.19879150390625, "coord_origin": "TOPLEFT"}, "confidence": 0.975760281085968, "cells": [{"id": 20, "text": "Even if you are willing to live with these performance and management issues, a user with ", "bbox": {"l": 136.79999, "t": 327.52661, "r": 536.46692, "b": 336.7395900000001, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "*ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily ", "bbox": {"l": 136.79999, "t": 339.52643, "r": 547.23267, "b": 348.73941, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "bypass the security controls that are built into an SQL view.", "bbox": {"l": 136.79999, "t": 351.52624999999995, "r": 397.88553, "b": 360.73923, "coord_origin": "TOPLEFT"}}]}, "text": "Even if you are willing to live with these performance and management issues, a user with *ALLOBJ access still can directly access all of the data in the underlying DB2 table and easily bypass the security controls that are built into an SQL view."}, {"label": "caption", "id": 7, "page_no": 6, "cluster": {"id": 7, "label": "caption", "bbox": {"l": 136.23910522460938, "t": 690.8873901367188, "r": 317.073486328125, "b": 700.1619262695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9457826614379883, "cells": [{"id": 23, "text": "Figure 1-2 Existing row and column controls", "bbox": {"l": 136.8, "t": 691.818, "r": 316.44727, "b": 700.142998, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 1-2 Existing row and column controls"}, {"label": "picture", "id": 8, "page_no": 6, "cluster": {"id": 8, "label": "picture", "bbox": {"l": 135.92466735839844, "t": 375.9272155761719, "r": 546.4456176757812, "b": 688.6098022460938, "coord_origin": "TOPLEFT"}, "confidence": 0.9838992357254028, "cells": [{"id": 24, "text": "User with", "bbox": {"l": 180.95911, "t": 383.45612, "r": 209.08017, "b": 389.0784, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*ALLOBJ access", "bbox": {"l": 170.00624, "t": 390.95251, "r": 220.10355, "b": 396.57480000000004, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 6, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.09014129638672, "t": 754.0796508789062, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8578534126281738, "cells": [{"id": 0, "text": "4 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 72.821999, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "4"}, {"label": "page_footer", "id": 1, "page_no": 6, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 87.840302, "t": 754.6302490234375, "r": 328.72537, "b": 763.9817504882812, "coord_origin": "TOPLEFT"}, "confidence": 0.9491621851921082, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 87.840302, "t": 755.538002, "r": 328.72537, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 7, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"17": {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "section_header", "id": 2, "page_no": 7, "cluster": {"id": 2, "label": "section_header", "bbox": {"l": 64.09011840820312, "t": 70.1792984008789, "r": 335.49551, "b": 83.9942626953125, "coord_origin": "TOPLEFT"}, "confidence": 0.969738245010376, "cells": [{"id": 2, "text": "2.1.6", "bbox": {"l": 64.800003, "t": 71.33471999999995, "r": 94.081459, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Change Function Usage CL command", "bbox": {"l": 97.741661, "t": 71.33471999999995, "r": 335.49551, "b": 83.32275000000004, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.6 Change Function Usage CL command"}, {"label": "text", "id": 3, "page_no": 7, "cluster": {"id": 3, "label": "text", "bbox": {"l": 135.83584594726562, "t": 96.62870788574219, "r": 547.28442, "b": 107.22466278076172, "coord_origin": "TOPLEFT"}, "confidence": 0.9551490545272827, "cells": [{"id": 4, "text": "The following CL commands can be used to work with, display, or change function usage IDs:", "bbox": {"l": 136.8, "t": 97.48870999999997, "r": 547.28442, "b": 106.70172000000014, "coord_origin": "TOPLEFT"}}]}, "text": "The following CL commands can be used to work with, display, or change function usage IDs:"}, {"label": "list_item", "id": 4, "page_no": 7, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.6907196044922, "t": 113.74026489257812, "r": 301.51749, "b": 124.55382537841797, "coord_origin": "TOPLEFT"}, "confidence": 0.9410473704338074, "cells": [{"id": 5, "text": "GLYPH", "bbox": {"l": 136.8, "t": 114.67767000000003, "r": 141.78, "b": 123.45245, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Work Function Usage (", "bbox": {"l": 151.20016, "t": 114.52826000000005, "r": 253.26227000000003, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "WRKFCNUSG", "bbox": {"l": 253.26028, "t": 114.67767000000003, "r": 298.1998, "b": 123.50225999999998, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": ")", "bbox": {"l": 298.20081, "t": 114.52826000000005, "r": 301.51749, "b": 123.74126999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Work Function Usage ( WRKFCNUSG )"}, {"label": "list_item", "id": 5, "page_no": 7, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.7242889404297, "t": 125.93077850341797, "r": 313.39777, "b": 136.68792724609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9417493939399719, "cells": [{"id": 9, "text": "GLYPH", "bbox": {"l": 136.80099, "t": 126.67749000000003, "r": 141.78099, "b": 135.45227, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Change Function Usage (", "bbox": {"l": 151.20116, "t": 126.52808000000005, "r": 265.13354, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "CHGFCNUSG", "bbox": {"l": 265.08081, "t": 126.67749000000003, "r": 310.02032, "b": 135.50207999999998, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": ")", "bbox": {"l": 310.08109, "t": 126.52808000000005, "r": 313.39777, "b": 135.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Change Function Usage ( CHGFCNUSG )"}, {"label": "list_item", "id": 6, "page_no": 7, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.71124267578125, "t": 137.9629364013672, "r": 310.81711, "b": 148.59957885742188, "coord_origin": "TOPLEFT"}, "confidence": 0.9562166929244995, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.80098, "t": 138.67731000000003, "r": 141.78098, "b": 147.45209, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Display Function Usage (", "bbox": {"l": 151.20114, "t": 138.52788999999996, "r": 262.5639, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "DSPFCNUSG", "bbox": {"l": 262.56091, "t": 138.67731000000003, "r": 307.50043, "b": 147.50189, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": ")", "bbox": {"l": 307.50043, "t": 138.52788999999996, "r": 310.81711, "b": 147.74090999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH Display Function Usage ( DSPFCNUSG )"}, {"label": "text", "id": 7, "page_no": 7, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.30247497558594, "t": 159.218505859375, "r": 512.53802, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9682289958000183, "cells": [{"id": 17, "text": "For example, the following ", "bbox": {"l": 136.79997, "t": 160.48766999999998, "r": 255.09984000000003, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "CHGFCNUSG", "bbox": {"l": 255.00027, "t": 160.63707999999997, "r": 299.99957, "b": 169.46167000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": " command shows granting authorization to user ", "bbox": {"l": 300.00055, "t": 160.48766999999998, "r": 512.53802, "b": 169.70068000000003, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "HBEDOYA to administer and manage RCAC rules:", "bbox": {"l": 136.80096, "t": 172.48748999999998, "r": 360.41989, "b": 181.70050000000003, "coord_origin": "TOPLEFT"}}]}, "text": "For example, the following CHGFCNUSG command shows granting authorization to user HBEDOYA to administer and manage RCAC rules:"}, {"label": "text", "id": 8, "page_no": 7, "cluster": {"id": 8, "label": "text", "bbox": {"l": 136.3306427001953, "t": 187.99078369140625, "r": 441.59686, "b": 198.88003540039062, "coord_origin": "TOPLEFT"}, "confidence": 0.9056942462921143, "cells": [{"id": 21, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)", "bbox": {"l": 136.80096, "t": 189.67645000000005, "r": 441.59686, "b": 198.45123, "coord_origin": "TOPLEFT"}}]}, "text": "CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(HBEDOYA) USAGE(*ALLOWED)"}, {"label": "section_header", "id": 9, "page_no": 7, "cluster": {"id": 9, "label": "section_header", "bbox": {"l": 63.9356689453125, "t": 218.1382598876953, "r": 544.47546, "b": 232.12425231933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9636377096176147, "cells": [{"id": 22, "text": "2.1.7", "bbox": {"l": 64.800003, "t": 219.35468000000003, "r": 93.757614, "b": 231.34271, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Verifying function usage IDs for RCAC with the FUNCTION_USAGE view", "bbox": {"l": 97.377296, "t": 219.35468000000003, "r": 544.47546, "b": 231.34271, "coord_origin": "TOPLEFT"}}]}, "text": "2.1.7 Verifying function usage IDs for RCAC with the FUNCTION_USAGE view"}, {"label": "text", "id": 10, "page_no": 7, "cluster": {"id": 10, "label": "text", "bbox": {"l": 135.84828186035156, "t": 244.5770263671875, "r": 519.51794, "b": 266.7215, "coord_origin": "TOPLEFT"}, "confidence": 0.9737265110015869, "cells": [{"id": 24, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 ", "bbox": {"l": 136.8, "t": 245.50867000000005, "r": 519.51794, "b": 254.72168, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "describes the columns in the FUNCTION_USAGE view.", "bbox": {"l": 136.8, "t": 257.50847999999996, "r": 382.94443, "b": 266.7215, "coord_origin": "TOPLEFT"}}]}, "text": "The FUNCTION_USAGE view contains function usage configuration details. Table 2-1 describes the columns in the FUNCTION_USAGE view."}, {"label": "caption", "id": 11, "page_no": 7, "cluster": {"id": 11, "label": "caption", "bbox": {"l": 136.8, "t": 278.509521484375, "r": 284.9328308105469, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}, "confidence": 0.919783353805542, "cells": [{"id": 26, "text": "Table 2-1 FUNCTION_USAGE view", "bbox": {"l": 136.8, "t": 279.55798000000004, "r": 283.96805, "b": 287.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-1 FUNCTION_USAGE view"}, {"label": "text", "id": 12, "page_no": 7, "cluster": {"id": 12, "label": "text", "bbox": {"l": 135.81077575683594, "t": 451.328857421875, "r": 547.2804, "b": 473.72153, "coord_origin": "TOPLEFT"}, "confidence": 0.9647641777992249, "cells": [{"id": 27, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is ", "bbox": {"l": 136.8, "t": 452.50872999999996, "r": 547.2804, "b": 461.72171, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "shown in Example 2-1.", "bbox": {"l": 136.8, "t": 464.50854, "r": 237.76951999999997, "b": 473.72153, "coord_origin": "TOPLEFT"}}]}, "text": "To discover who has authorization to define and manage RCAC, you can use the query that is shown in Example 2-1."}, {"label": "caption", "id": 13, "page_no": 7, "cluster": {"id": 13, "label": "caption", "bbox": {"l": 136.28225708007812, "t": 485.76434326171875, "r": 462.98095703125, "b": 495.88201904296875, "coord_origin": "TOPLEFT"}, "confidence": 0.8165032267570496, "cells": [{"id": 29, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC", "bbox": {"l": 136.8, "t": 486.55798, "r": 462.35419, "b": 494.883, "coord_origin": "TOPLEFT"}}]}, "text": "Example 2-1 Query to determine who has authority to define and manage RCAC"}, {"label": "text", "id": 14, "page_no": 7, "cluster": {"id": 14, "label": "text", "bbox": {"l": 136.8, "t": 503.65802, "r": 331.67731, "b": 584.43163, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 30, "text": "SELECT", "bbox": {"l": 136.8, "t": 503.65802, "r": 171.26956, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "function_id,", "bbox": {"l": 182.75941, "t": 503.65802, "r": 251.69853, "b": 512.4328, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "user_name,", "bbox": {"l": 166.78244, "t": 515.6578400000001, "r": 241.73852999999997, "b": 524.43262, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "usage,", "bbox": {"l": 170.75961, "t": 527.65765, "r": 221.69901999999996, "b": 536.43242, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "user_type", "bbox": {"l": 167.53809, "t": 539.65747, "r": 236.69878, "b": 548.43222, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "FROM", "bbox": {"l": 136.8, "t": 551.65727, "r": 160.59396, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "function_usage", "bbox": {"l": 178.43944, "t": 551.65727, "r": 261.71829, "b": 560.43202, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHERE", "bbox": {"l": 136.8, "t": 563.65707, "r": 162.44176, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "function_id=\u2019QIBM_DB_SECADM\u2019", "bbox": {"l": 177.8268, "t": 563.65707, "r": 331.67731, "b": 572.43182, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ORDER BY", "bbox": {"l": 136.8, "t": 575.65688, "r": 178.77542, "b": 584.43163, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "user_name;", "bbox": {"l": 189.26929, "t": 575.65688, "r": 241.73856, "b": 584.43163, "coord_origin": "TOPLEFT"}}]}, "text": "SELECT function_id, user_name, usage, user_type FROM function_usage WHERE function_id=\u2019QIBM_DB_SECADM\u2019 ORDER BY user_name;"}, {"label": "section_header", "id": 15, "page_no": 7, "cluster": {"id": 15, "label": "section_header", "bbox": {"l": 64.18024444580078, "t": 619.3924560546875, "r": 249.59605000000002, "b": 635.6513671875, "coord_origin": "TOPLEFT"}, "confidence": 0.9656643271446228, "cells": [{"id": 41, "text": "2.2", "bbox": {"l": 64.800003, "t": 620.22063, "r": 87.569839, "b": 634.98363, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "Separation of duties", "bbox": {"l": 92.123802, "t": 620.22063, "r": 249.59605000000002, "b": 634.98363, "coord_origin": "TOPLEFT"}}]}, "text": "2.2 Separation of duties"}, {"label": "text", "id": 16, "page_no": 7, "cluster": {"id": 16, "label": "text", "bbox": {"l": 136.1588592529297, "t": 651.8870849609375, "r": 547.22345, "b": 710.182373046875, "coord_origin": "TOPLEFT"}, "confidence": 0.9853105545043945, "cells": [{"id": 43, "text": "Separation of duties helps businesses comply with industry regulations or organizational ", "bbox": {"l": 136.8, "t": 652.54872, "r": 529.09357, "b": 661.76172, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "requirements and simplifies the management of authorities. Separation of duties is commonly ", "bbox": {"l": 136.8, "t": 664.54852, "r": 547.22345, "b": 673.76153, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "used to prevent fraudulent activities or errors by a single person. It provides the ability for ", "bbox": {"l": 136.8, "t": 676.54833, "r": 530.89716, "b": 685.76134, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "administrative functions to be divided across individuals without overlapping responsibilities, ", "bbox": {"l": 136.80002, "t": 688.54814, "r": 544.33832, "b": 697.7611469999999, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "so that one user does not possess unlimited authority, such as with the *ALLOBJ authority.", "bbox": {"l": 136.80002, "t": 700.547951, "r": 536.28363, "b": 709.760956, "coord_origin": "TOPLEFT"}}]}, "text": "Separation of duties helps businesses comply with industry regulations or organizational requirements and simplifies the management of authorities. Separation of duties is commonly used to prevent fraudulent activities or errors by a single person. It provides the ability for administrative functions to be divided across individuals without overlapping responsibilities, so that one user does not possess unlimited authority, such as with the *ALLOBJ authority."}, {"label": "table", "id": 17, "page_no": 7, "cluster": {"id": 17, "label": "table", "bbox": {"l": 135.52508544921875, "t": 289.7249755859375, "r": 545.87060546875, "b": 442.0505065917969, "coord_origin": "TOPLEFT"}, "confidence": 0.985169529914856, "cells": [{"id": 48, "text": "Column name", "bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Data type", "bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "Description", "bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "FUNCTION_ID", "bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "VARCHAR(30)", "bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ID of the function.", "bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "USER_NAME", "bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "VARCHAR(10)", "bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Name of the user profile that has a usage setting for this ", "bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 342.84302, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "function.", "bbox": {"l": 289.4397, "t": 345.55832, "r": 323.43362, "b": 353.88333, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "USAGE", "bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "VARCHAR(7)", "bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "Usage setting:", "bbox": {"l": 289.41626, "t": 364.51862, "r": 346.88757, "b": 372.84363, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 375.69394000000005, "r": 293.9397, "b": 383.62292, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "ALLOWED: The user profile is allowed to use the function.", "bbox": {"l": 303.83969, "t": 375.55893, "r": 535.16766, "b": 383.88394, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 386.67395, "r": 293.9397, "b": 394.60294, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "DENIED: The user profile is not allowed to use the function.", "bbox": {"l": 303.83969, "t": 386.53894, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "USER_TYPE", "bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "VARCHAR(5)", "bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "Type of user profile:", "bbox": {"l": 289.43161, "t": 405.55865, "r": 367.8009, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 416.67368000000005, "r": 293.9397, "b": 424.60266, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "USER: The user profile is a user.", "bbox": {"l": 303.83969, "t": 416.53867, "r": 434.78159, "b": 424.86368, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "GLYPH", "bbox": {"l": 289.4397, "t": 427.65369, "r": 293.9397, "b": 435.58267000000006, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "GROUP: The user profile is a group.", "bbox": {"l": 303.83969, "t": 427.51868, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 5, "num_cols": 3, "table_cells": [{"bbox": {"l": 142.8, "t": 296.5379899999999, "r": 202.245, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Column name", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 216.80878999999996, "t": 296.5379899999999, "r": 257.21069, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Data type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 289.47479, "t": 296.5379899999999, "r": 338.89468, "b": 304.86301, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 315.55771, "r": 203.2323, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "FUNCTION_ID", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.7854, "t": 315.55771, "r": 276.0036, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(30)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.4577, "t": 315.55771, "r": 359.85394, "b": 323.88272, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "ID of the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 334.51801, "r": 198.6693, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.74129999999997, "t": 334.51801, "r": 275.92349, "b": 342.84302, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(10)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.38208, "t": 334.51801, "r": 515.05359, "b": 353.88333, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the user profile that has a usage setting for this function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.79999, "t": 364.51862, "r": 173.98318, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USAGE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.77367999999998, "t": 364.51862, "r": 270.97977, "b": 372.84363, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(7)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.41626, "t": 364.51862, "r": 539.10712, "b": 394.86395, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Usage setting: GLYPH ALLOWED: The user profile is allowed to use the function. GLYPH DENIED: The user profile is not allowed to use the function.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8, "t": 405.55865, "r": 196.2249, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 216.75211, "t": 405.55865, "r": 270.99872, "b": 413.88367000000005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(5)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 289.43161, "t": 405.55865, "r": 448.11963000000003, "b": 435.84369, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of user profile: GLYPH USER: The user profile is a user. GLYPH GROUP: The user profile is a group.", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 7, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.4488525390625, "t": 754.418701171875, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9166076183319092, "cells": [{"id": 0, "text": "10 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "10"}, {"label": "page_footer", "id": 1, "page_no": 7, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.35774993896484, "t": 754.6892700195312, "r": 334.42142, "b": 763.9585571289062, "coord_origin": "TOPLEFT"}, "confidence": 0.9529878497123718, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 8, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"9": {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}, {"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 8, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.92747497558594, "t": 70.65541076660156, "r": 542.69434, "b": 141.03610229492188, "coord_origin": "TOPLEFT"}, "confidence": 0.9789126515388489, "cells": [{"id": 2, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 542.69434, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same ", "bbox": {"l": 136.79959, "t": 83.50885000000017, "r": 513.67804, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "privileges Theresa was granting to others. Therefore, to grant *USE privileges to the ", "bbox": {"l": 136.79959, "t": 95.50867000000005, "r": 509.71902, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of ", "bbox": {"l": 136.79959, "t": 107.50847999999996, "r": 528.20184, "b": 116.72149999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the ", "bbox": {"l": 136.79959, "t": 119.50829999999996, "r": 531.84015, "b": 128.72131000000002, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "PAYROLL table even though Theresa\u2019s job description was only to manage its security.", "bbox": {"l": 136.79959, "t": 131.50811999999996, "r": 519.24982, "b": 140.72113000000002, "coord_origin": "TOPLEFT"}}]}, "text": "For example, assume that a business has assigned the duty to manage security on IBM i to Theresa. Before release IBM i 7.2, to grant privileges, Theresa had to have the same privileges Theresa was granting to others. Therefore, to grant *USE privileges to the PAYROLL table, Theresa had to have *OBJMGT and *USE authority (or a higher level of authority, such as *ALLOBJ). This requirement allowed Theresa to access the data in the PAYROLL table even though Theresa\u2019s job description was only to manage its security."}, {"label": "text", "id": 3, "page_no": 8, "cluster": {"id": 3, "label": "text", "bbox": {"l": 136.04833984375, "t": 152.51307678222656, "r": 547.30396, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9665539860725403, "cells": [{"id": 8, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, ", "bbox": {"l": 136.79959, "t": 153.52770999999996, "r": 544.16064, "b": 162.74072, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "changes ownership, or changes the primary group without giving access to the object or, in ", "bbox": {"l": 136.79959, "t": 165.52752999999996, "r": 540.66156, "b": 174.74054, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "the case of a database table, to the data that is in the table or allowing other operations on the ", "bbox": {"l": 136.79959, "t": 177.52733999999998, "r": 547.30396, "b": 186.74036, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "table. ", "bbox": {"l": 136.79959, "t": 189.52715999999998, "r": 163.6189, "b": 198.74017000000003, "coord_origin": "TOPLEFT"}}]}, "text": "In IBM i 7.2, the QIBM_DB_SECADM function usage grants authorities, revokes authorities, changes ownership, or changes the primary group without giving access to the object or, in the case of a database table, to the data that is in the table or allowing other operations on the table."}, {"label": "text", "id": 4, "page_no": 8, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.00685119628906, "t": 210.41148376464844, "r": 538.65076, "b": 233.08047485351562, "coord_origin": "TOPLEFT"}, "confidence": 0.9691813588142395, "cells": [{"id": 12, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special ", "bbox": {"l": 136.79959, "t": 211.48694, "r": 538.65076, "b": 220.69994999999994, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "authority and can be given to a user or a group.", "bbox": {"l": 136.79959, "t": 223.48676, "r": 346.34808, "b": 232.69976999999994, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM function usage can be granted only by a user with *SECADM special authority and can be given to a user or a group."}, {"label": "text", "id": 5, "page_no": 8, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.68702697753906, "t": 244.5381622314453, "r": 545.79602, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}, "confidence": 0.9729602932929993, "cells": [{"id": 14, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows ", "bbox": {"l": 136.79959, "t": 245.50635, "r": 545.79602, "b": 254.71936000000005, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "a user is allowed to access in a table and whether a user is allowed to see information in ", "bbox": {"l": 136.79959, "t": 257.50616, "r": 529.46149, "b": 266.71918000000005, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "certain columns of a table.", "bbox": {"l": 136.79959, "t": 269.50598, "r": 253.47696999999997, "b": 278.71898999999996, "coord_origin": "TOPLEFT"}}]}, "text": "QIBM_DB_SECADM also is responsible for administering RCAC, which restricts which rows a user is allowed to access in a table and whether a user is allowed to see information in certain columns of a table."}, {"label": "text", "id": 6, "page_no": 8, "cluster": {"id": 6, "label": "text", "bbox": {"l": 135.86065673828125, "t": 290.6051330566406, "r": 539.80713, "b": 336.73801, "coord_origin": "TOPLEFT"}, "confidence": 0.9815152883529663, "cells": [{"id": 17, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function ", "bbox": {"l": 136.79959, "t": 291.52557, "r": 533.78137, "b": 300.73856, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "usage ID, but absolutely no other data privileges. The result is that the RCAC administrator ", "bbox": {"l": 136.79959, "t": 303.52539, "r": 539.80713, "b": 312.73837000000003, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized ", "bbox": {"l": 136.79959, "t": 315.52521, "r": 534.5741, "b": 324.73819, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "access to data itself.", "bbox": {"l": 136.79959, "t": 327.52502, "r": 227.02324, "b": 336.73801, "coord_origin": "TOPLEFT"}}]}, "text": "A preferred practice is that the RCAC administrator has the QIBM_DB_SECADM function usage ID, but absolutely no other data privileges. The result is that the RCAC administrator can deploy and maintain the RCAC constructs, but cannot grant themselves unauthorized access to data itself."}, {"label": "text", "id": 7, "page_no": 8, "cluster": {"id": 7, "label": "text", "bbox": {"l": 135.7205352783203, "t": 348.60931396484375, "r": 543.06714, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}, "confidence": 0.9672255516052246, "cells": [{"id": 21, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to ", "bbox": {"l": 136.79959, "t": 349.48483, "r": 543.06714, "b": 358.69780999999995, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "the different CL commands and DB2 for i tools.", "bbox": {"l": 136.79959, "t": 361.48465, "r": 343.79236, "b": 370.69763000000006, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 shows a comparison of the different function usage IDs and *JOBCTL authority to the different CL commands and DB2 for i tools."}, {"label": "caption", "id": 8, "page_no": 8, "cluster": {"id": 8, "label": "caption", "bbox": {"l": 64.800003, "t": 382.5287170410156, "r": 392.4624328613281, "b": 392.25494384765625, "coord_origin": "TOPLEFT"}, "confidence": 0.933719277381897, "cells": [{"id": 23, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority", "bbox": {"l": 64.800003, "t": 383.5379899999999, "r": 391.75464, "b": 391.86301, "coord_origin": "TOPLEFT"}}]}, "text": "Table 2-2 Comparison of the different function usage IDs and *JOBCTL authority"}, {"label": "table", "id": 9, "page_no": 8, "cluster": {"id": 9, "label": "table", "bbox": {"l": 64.41139221191406, "t": 393.6136474609375, "r": 547.3950805664062, "b": 721.60791015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9899571537971497, "cells": [{"id": 24, "text": "User action", "bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "*JOBCTL", "bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "QIBM_DB_SECADM", "bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "QIBM_DB_SQLADM", "bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "QIBM_DB_SYSMON", "bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "No Authority", "bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "SET CURRENT DEGREE", "bbox": {"l": 70.800003, "t": 498.69299, "r": 151.6794, "b": 506.66699, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " (SQL statement)", "bbox": {"l": 151.6803, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "X", "bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "X", "bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "CHGQRYA", "bbox": {"l": 70.800018, "t": 517.65329, "r": 102.23972, "b": 525.62729, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": " command targeting a different user\u2019s job", "bbox": {"l": 102.23972, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "X", "bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "X", "bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 536.67299, "r": 106.73975, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": " or ", "bbox": {"l": 106.73975, "t": 536.5379800000001, "r": 119.77895, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 536.67299, "r": 155.69974, "b": 544.64699, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": " commands targeting a different user\u2019s job", "bbox": {"l": 155.69974, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "X", "bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "X", "bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "STRDBMON", "bbox": {"l": 70.800049, "t": 555.69269, "r": 106.73975, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": " or ", "bbox": {"l": 106.73975, "t": 555.55768, "r": 119.77895, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ENDDBMON", "bbox": {"l": 119.69975000000001, "t": 555.69269, "r": 155.69974, "b": 563.66669, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": " commands targeting a job that matches the current user", "bbox": {"l": 155.69974, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "X", "bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "X", "bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "X", "bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "X", "bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "X", "bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "X", "bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "X", "bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "Visual Explain within Run SQL scripts", "bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "X", "bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "X", "bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "X", "bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 60, "text": "X", "bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}}, {"id": 61, "text": "Visual Explain outside of Run SQL scripts", "bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 62, "text": "X", "bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 63, "text": "X", "bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}}, {"id": 64, "text": "ANALYZE PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 65, "text": "X", "bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 66, "text": "X", "bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}}, {"id": 67, "text": "DUMP PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 68, "text": "X", "bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 69, "text": "X", "bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}}, {"id": 70, "text": "MODIFY PLAN CACHE procedure", "bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 71, "text": "X", "bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 72, "text": "X", "bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}}, {"id": 73, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 74, "text": "X", "bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 75, "text": "X", "bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}}, {"id": 76, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 77, "text": "X", "bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}}, {"id": 78, "text": "X", "bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["rhed", "fcel", "fcel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "fcel", "fcel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl", "rhed", "fcel", "ecel", "fcel", "ecel", "ecel", "nl"], "num_rows": 13, "num_cols": 6, "table_cells": [{"bbox": {"l": 70.800301, "t": 400.51827999999995, "r": 119.78551, "b": 408.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "User action", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 424.93805, "t": 447.52255, "r": 433.26297000000005, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "*JOBCTL", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 450.13806, "t": 401.6000700000001, "r": 458.46298, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "QIBM_DB_SECADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 475.93835000000007, "t": 401.53442, "r": 484.26327999999995, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "QIBM_DB_SQLADM", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 501.13837, "t": 401.6145, "r": 509.46329, "b": 487.01999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "QIBM_DB_SYSMON", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 526.39862, "t": 432.79944, "r": 534.72357, "b": 487.02005, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "No Authority", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 498.55798, "r": 220.15681000000004, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SET CURRENT DEGREE (SQL statement)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0, "t": 498.55798, "r": 435.00299000000007, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00031, "t": 498.55798, "r": 486.0033, "b": 506.883, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 517.51828, "r": 264.5538, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHGQRYA command targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 517.51828, "r": 435.00302000000005, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 517.51828, "r": 486.00333, "b": 525.84329, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 536.5379800000001, "r": 322.50574, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a different user\u2019s job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 536.5379800000001, "r": 435.00302000000005, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 536.5379800000001, "r": 486.00333, "b": 544.8629900000001, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 555.55768, "r": 381.02185, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "STRDBMON or ENDDBMON commands targeting a job that matches the current user", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.00003, "t": 555.55768, "r": 435.00302000000005, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00034, "t": 555.55768, "r": 486.00333, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.26061999999996, "t": 555.55768, "r": 511.26361, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76031, "t": 555.55768, "r": 536.76331, "b": 563.8826899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800049, "t": 574.51797, "r": 359.51736, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "QUSRJOBI() API format 900 or System i Navigator\u2019s SQL Details for Job", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 574.51797, "r": 435.00305000000003, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 574.51797, "r": 486.00335999999993, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 574.51797, "r": 511.26367, "b": 582.84299, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 593.5376699999999, "r": 220.75178999999997, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain within Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 593.5376699999999, "r": 435.00305000000003, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 593.5376699999999, "r": 486.00335999999993, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 505.2606799999999, "t": 593.5376699999999, "r": 511.26367, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 4, "end_col_offset_idx": 5, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 530.76038, "t": 593.5376699999999, "r": 536.76337, "b": 601.8626899999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 5, "end_col_offset_idx": 6, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 612.55737, "r": 236.6548, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Visual Explain outside of Run SQL scripts", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 612.55737, "r": 435.00305000000003, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 612.55737, "r": 486.00335999999993, "b": 620.88239, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 631.51767, "r": 213.12968, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ANALYZE PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 631.51767, "r": 435.00305000000003, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 631.51767, "r": 486.00335999999993, "b": 639.84268, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 650.53737, "r": 199.87808, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "DUMP PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 650.53737, "r": 435.00305000000003, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 650.53737, "r": 486.00335999999993, "b": 658.86238, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 669.55708, "r": 208.36777, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE procedure", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 669.55708, "r": 435.00305000000003, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 669.55708, "r": 486.00335999999993, "b": 677.88207, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 10, "end_row_offset_idx": 11, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 688.57677, "r": 411.20264, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "MODIFY PLAN CACHE PROPERTIES procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 688.57677, "r": 435.00305000000003, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 688.57677, "r": 486.00335999999993, "b": 696.9017719999999, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 11, "end_row_offset_idx": 12, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800079, "t": 707.537071, "r": 377.12585, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CHANGE PLAN CACHE SIZE procedure (currently does not check authority)", "column_header": false, "row_header": true, "row_section": false}, {"bbox": {"l": 429.0000600000001, "t": 707.537071, "r": 435.00305000000003, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "X", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 480.00037, "t": 707.537071, "r": 486.00335999999993, "b": 715.862068, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 12, "end_row_offset_idx": 13, "start_col_offset_idx": 3, "end_col_offset_idx": 4, "text": "X", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 8, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 354.4815673828125, "t": 754.9415893554688, "r": 523.54071, "b": 764.1055297851562, "coord_origin": "TOPLEFT"}, "confidence": 0.9508126378059387, "cells": [{"id": 0, "text": "Chapter 2. Roles and separation of duties ", "bbox": {"l": 355.32001, "t": 755.538002, "r": 523.54071, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 2. Roles and separation of duties"}, {"label": "page_footer", "id": 1, "page_no": 8, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0808715820312, "t": 754.2325439453125, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8987302780151367, "cells": [{"id": 1, "text": "11", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "11"}]}}, {"page_no": 9, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}, {"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 9, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.73501586914062, "t": 70.48638153076172, "r": 528.73059, "b": 92.9990234375, "coord_origin": "TOPLEFT"}, "confidence": 0.872844934463501, "cells": [{"id": 2, "text": "The SQL ", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 179.58179, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CREATE PERMISSION", "bbox": {"l": 179.57977, "t": 71.65845000000002, "r": 264.47879, "b": 80.48302999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": " statement that is shown in Figure 3-1 is used to define and ", "bbox": {"l": 264.53955, "t": 71.50903000000005, "r": 528.73059, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "initially enable or disable the row access rules.", "bbox": {"l": 136.79956, "t": 83.50885000000017, "r": 341.71762, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}]}, "text": "The SQL CREATE PERMISSION statement that is shown in Figure 3-1 is used to define and initially enable or disable the row access rules."}, {"label": "caption", "id": 3, "page_no": 9, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.3166961669922, "t": 413.26751708984375, "r": 342.55548095703125, "b": 422.8843078613281, "coord_origin": "TOPLEFT"}, "confidence": 0.9387834072113037, "cells": [{"id": 6, "text": "Figure 3-1 CREATE PERMISSION SQL statement", "bbox": {"l": 136.8, "t": 414.138, "r": 341.97659, "b": 422.46301, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-1 CREATE PERMISSION SQL statement"}, {"label": "section_header", "id": 4, "page_no": 9, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 136.24984741210938, "t": 438.7343444824219, "r": 215.88082885742188, "b": 451.04401, "coord_origin": "TOPLEFT"}, "confidence": 0.9477567076683044, "cells": [{"id": 7, "text": "Column mask", "bbox": {"l": 136.8, "t": 439.94399999999996, "r": 215.37601, "b": 451.04401, "coord_origin": "TOPLEFT"}}]}, "text": "Column mask"}, {"label": "text", "id": 5, "page_no": 9, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.803466796875, "t": 453.9210510253906, "r": 542.76648, "b": 500.30115, "coord_origin": "TOPLEFT"}, "confidence": 0.9843975901603699, "cells": [{"id": 8, "text": "A column mask is a database object that manifests a column value access control rule for a ", "bbox": {"l": 136.8, "t": 455.08871000000005, "r": 542.76648, "b": 464.3017, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "specific column in a specific table. It uses a CASE expression that describes what you see ", "bbox": {"l": 136.8, "t": 467.08853, "r": 537.84125, "b": 476.30151, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "when you access the column. For example, a teller can see only the last four digits of a tax ", "bbox": {"l": 136.8, "t": 479.08835, "r": 538.80927, "b": 488.30133, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "identification number.", "bbox": {"l": 136.8, "t": 491.08817, "r": 231.20888, "b": 500.30115, "coord_origin": "TOPLEFT"}}]}, "text": "A column mask is a database object that manifests a column value access control rule for a specific column in a specific table. It uses a CASE expression that describes what you see when you access the column. For example, a teller can see only the last four digits of a tax identification number."}, {"label": "picture", "id": 6, "page_no": 9, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 135.9717559814453, "t": 107.41072845458984, "r": 545.4180908203125, "b": 410.60931396484375, "coord_origin": "TOPLEFT"}, "confidence": 0.9788318872451782, "cells": [{"id": 12, "text": "CREATE PERMISSION", "bbox": {"l": 148.1337, "t": 139.67969000000005, "r": 246.7961, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "<", "bbox": {"l": 251.86685, "t": 139.67969000000005, "r": 257.58578, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "permission name", "bbox": {"l": 257.59152, "t": 139.67969000000005, "r": 336.99741, "b": 149.50982999999997, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": ">", "bbox": {"l": 337.01233, "t": 139.67969000000005, "r": 342.73126, "b": 149.49834999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Names the row permission for row access control", "bbox": {"l": 346.56491, "t": 121.46252000000004, "r": 530.74371, "b": 129.33507999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "ON", "bbox": {"l": 148.1337, "t": 181.06255999999996, "r": 163.45079, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "<", "bbox": {"l": 168.58405, "t": 181.06255999999996, "r": 174.30298, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "table name", "bbox": {"l": 174.30872, "t": 181.06255999999996, "r": 226.86777, "b": 190.8927, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": ">", "bbox": {"l": 226.86548000000002, "t": 181.06255999999996, "r": 232.58441, "b": 190.88122999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "Identifies the table on which the row ", "bbox": {"l": 311.3204, "t": 166.29413, "r": 450.77191000000005, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "permission is created", "bbox": {"l": 450.86123999999995, "t": 166.29413, "r": 529.93134, "b": 174.16669000000002, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "AS ", "bbox": {"l": 148.1337, "t": 222.44550000000004, "r": 163.10973, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "<", "bbox": {"l": 165.68669, "t": 222.44550000000004, "r": 171.40562, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "correlation name", "bbox": {"l": 171.41136, "t": 222.44550000000004, "r": 251.20424000000003, "b": 232.27562999999998, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": ">", "bbox": {"l": 251.21115, "t": 222.44550000000004, "r": 256.93008, "b": 232.26415999999995, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Specifies an optional correlation name that ca", "bbox": {"l": 235.79649, "t": 204.22839, "r": 406.62051, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "be used within search-condition", "bbox": {"l": 480.53094, "t": 204.22839, "r": 532.89496, "b": 212.10095, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "FOR ROWS", "bbox": {"l": 148.1337, "t": 263.82836999999995, "r": 199.72467, "b": 273.65851, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Indicates that a row permission is cr", "bbox": {"l": 321.56271, "t": 246.09411999999998, "r": 455.3432, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "eated", "bbox": {"l": 455.20786000000004, "t": 246.09411999999998, "r": 476.48404, "b": 253.96667000000002, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Specifies a condition that can be ", "bbox": {"l": 321.5972, "t": 266.30267000000003, "r": 444.0292400000001, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "true,", "bbox": {"l": 444.07986, "t": 266.30267000000003, "r": 459.08678999999995, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "false, or unknown", "bbox": {"l": 464.2088, "t": 266.30267000000003, "r": 530.94897, "b": 274.17523000000006, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHERE", "bbox": {"l": 148.1337, "t": 291.41708, "r": 183.42342, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "<", "bbox": {"l": 188.61984, "t": 291.41708, "r": 194.33878, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "logic to test: user and/or group and/or column value", "bbox": {"l": 194.34451, "t": 291.41708, "r": 437.04659999999996, "b": 301.24722, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": ">", "bbox": {"l": 437.09020999999996, "t": 291.41708, "r": 442.80914000000007, "b": 301.23572, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ENFORCED FOR ALL ACCESS", "bbox": {"l": 148.1337, "t": 332.79999, "r": 278.77805, "b": 342.63013, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Specifies that the row permission applies to all ref", "bbox": {"l": 271.55829, "t": 314.58276, "r": 457.4451, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "erences of the table", "bbox": {"l": 457.19281, "t": 314.58276, "r": 531.74939, "b": 322.45535, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "ENABLE", "bbox": {"l": 148.1337, "t": 374.18289, "r": 185.17584, "b": 384.01302999999996, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Specifies that the row permission is to", "bbox": {"l": 312.28601, "t": 355.96576000000005, "r": 454.33505, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": " be initially enabled", "bbox": {"l": 454.3461, "t": 355.96576000000005, "r": 527.05286, "b": 363.83835, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "S", "bbox": {"l": 311.73431, "t": 376.65717, "r": 315.94684, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "ifith t th", "bbox": {"l": 329.28326, "t": 376.65717, "r": 371.71786, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "i", "bbox": {"l": 415.0014, "t": 376.65717, "r": 417.09616, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "i", "bbox": {"l": 424.27356, "t": 376.65717, "r": 426.36832, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "i", "bbox": {"l": 438.13208, "t": 376.65717, "r": 440.2268399999999, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "t", "bbox": {"l": 445.88681, "t": 376.65717, "r": 448.95757999999995, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "b", "bbox": {"l": 455.8532400000001, "t": 376.65717, "r": 460.67346000000003, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "i", "bbox": {"l": 467.36746, "t": 376.65717, "r": 470.06998000000004, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "iti ll", "bbox": {"l": 472.73705999999993, "t": 376.65717, "r": 490.1676, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "di", "bbox": {"l": 496.33661, "t": 376.65717, "r": 503.2608, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "bl d", "bbox": {"l": 511.26138, "t": 376.65717, "r": 527.59674, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "DISABLE", "bbox": {"l": 148.1337, "t": 387.9772, "r": 187.6265, "b": 397.80734000000007, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": ";", "bbox": {"l": 187.58514, "t": 387.9772, "r": 190.6628, "b": 397.79583999999994, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Specifies that the row permission is to ", "bbox": {"l": 311.73431, "t": 376.65717, "r": 455.83047000000005, "b": 384.52975, "coord_origin": "TOPLEFT"}}, {"id": 59, "text": "be initially disabled", "bbox": {"l": 455.8848, "t": 376.65717, "r": 527.62122, "b": 384.52975, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 9, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5666809082031, "t": 754.718017578125, "r": 523.60162, "b": 764.0823974609375, "coord_origin": "TOPLEFT"}, "confidence": 0.9526246786117554, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 9, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.09998, "t": 754.310302734375, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.907107949256897, "cells": [{"id": 1, "text": "15", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "15"}]}}, {"page_no": 10, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "SignedonasALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 218.71170000000004, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"14": {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}, {"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "caption", "id": 2, "page_no": 10, "cluster": {"id": 2, "label": "caption", "bbox": {"l": 135.82176208496094, "t": 70.68284606933594, "r": 412.20758, "b": 80.81541442871094, "coord_origin": "TOPLEFT"}, "confidence": 0.7875164747238159, "cells": [{"id": 2, "text": "Table 3-1 summarizes these special registers and their values.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 412.20758, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 summarizes these special registers and their values."}, {"label": "caption", "id": 3, "page_no": 10, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 136.8, "t": 92.7220458984375, "r": 372.7710876464844, "b": 101.9398422241211, "coord_origin": "TOPLEFT"}, "confidence": 0.9253708720207214, "cells": [{"id": 3, "text": "Table 3-1 Special registers and their corresponding values", "bbox": {"l": 136.8, "t": 93.49805000000003, "r": 372.60364, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-1 Special registers and their corresponding values"}, {"label": "text", "id": 4, "page_no": 10, "cluster": {"id": 4, "label": "text", "bbox": {"l": 136.3730926513672, "t": 213.3656463623047, "r": 538.4939, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}, "confidence": 0.9466656446456909, "cells": [{"id": 4, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is ", "bbox": {"l": 136.8, "t": 214.48870999999997, "r": 538.4939, "b": 223.70172000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "used:", "bbox": {"l": 136.8, "t": 226.48852999999997, "r": 161.20995, "b": 235.70154000000002, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 shows the difference in the special register values when an adopted authority is used:"}, {"label": "list_item", "id": 5, "page_no": 10, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 135.5663299560547, "t": 242.545654296875, "r": 411.36139, "b": 252.77870178222656, "coord_origin": "TOPLEFT"}, "confidence": 0.9504424333572388, "cells": [{"id": 6, "text": "GLYPH", "bbox": {"l": 136.8, "t": 243.67749000000003, "r": 141.78, "b": 252.45227, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "A user connects to the server using the user profile ALICE.", "bbox": {"l": 151.20016, "t": 243.52808000000005, "r": 411.36139, "b": 252.74108999999999, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH A user connects to the server using the user profile ALICE."}, {"label": "list_item", "id": 6, "page_no": 10, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 135.5452880859375, "t": 259.2925720214844, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9445974230766296, "cells": [{"id": 8, "text": "GLYPH", "bbox": {"l": 136.8, "t": 260.65729, "r": 141.78, "b": 269.43206999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "USER and CURRENT USER initially have the same value of ALICE.", "bbox": {"l": 151.20016, "t": 260.50787, "r": 453.2580899999999, "b": 269.72089000000005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH USER and CURRENT USER initially have the same value of ALICE."}, {"label": "list_item", "id": 7, "page_no": 10, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 135.3970947265625, "t": 276.51788330078125, "r": 541.44983, "b": 298.98980712890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9742953777313232, "cells": [{"id": 10, "text": "GLYPH", "bbox": {"l": 136.8, "t": 277.63707999999997, "r": 141.78, "b": 286.41187, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE ", "bbox": {"l": 151.20016, "t": 277.48767, "r": 541.44983, "b": 286.70068, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "and was created to adopt JOE\u2019s authority when it is called.", "bbox": {"l": 151.20016, "t": 289.4875200000001, "r": 409.82953, "b": 298.7005, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH ALICE calls an SQL procedure that is named proc1, which is owned by user profile JOE and was created to adopt JOE\u2019s authority when it is called."}, {"label": "list_item", "id": 8, "page_no": 10, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.5677947998047, "t": 305.81854248046875, "r": 547.21674, "b": 340.5078125, "coord_origin": "TOPLEFT"}, "confidence": 0.981132447719574, "cells": [{"id": 13, "text": "GLYPH", "bbox": {"l": 136.8, "t": 306.67647999999997, "r": 141.78, "b": 315.45126000000005, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "While the procedure is running, the special register USER still contains the value of ALICE ", "bbox": {"l": 151.20016, "t": 306.5271, "r": 547.21674, "b": 315.74008, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "because it excludes any adopted authority. The special register CURRENT USER ", "bbox": {"l": 151.20117, "t": 318.52691999999996, "r": 514.32971, "b": 327.7399, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "contains the value of JOE because it includes any adopted authority.", "bbox": {"l": 151.20117, "t": 330.52673, "r": 453.3249200000001, "b": 339.73972, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH While the procedure is running, the special register USER still contains the value of ALICE because it excludes any adopted authority. The special register CURRENT USER contains the value of JOE because it includes any adopted authority."}, {"label": "list_item", "id": 9, "page_no": 10, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.56973266601562, "t": 346.4946594238281, "r": 547.35406, "b": 368.9356384277344, "coord_origin": "TOPLEFT"}, "confidence": 0.9748278260231018, "cells": [{"id": 17, "text": "GLYPH", "bbox": {"l": 136.80101, "t": 347.65591, "r": 141.78101, "b": 356.43069, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "When proc1 ends, the session reverts to its original state with both USER and CURRENT ", "bbox": {"l": 151.20117, "t": 347.50653, "r": 547.35406, "b": 356.71950999999996, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "USER having the value of ALICE.", "bbox": {"l": 151.20117, "t": 359.50635, "r": 299.57532, "b": 368.71933000000007, "coord_origin": "TOPLEFT"}}]}, "text": "GLYPH When proc1 ends, the session reverts to its original state with both USER and CURRENT USER having the value of ALICE."}, {"label": "caption", "id": 10, "page_no": 10, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.22442626953125, "t": 596.1806030273438, "r": 342.349853515625, "b": 605.74462890625, "coord_origin": "TOPLEFT"}, "confidence": 0.9274528622627258, "cells": [{"id": 20, "text": "Figure 3-5 Special registers and adopted authority", "bbox": {"l": 136.8, "t": 596.7179, "r": 341.25662, "b": 605.04291, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-5 Special registers and adopted authority"}, {"label": "section_header", "id": 11, "page_no": 10, "cluster": {"id": 11, "label": "section_header", "bbox": {"l": 64.079833984375, "t": 624.3213500976562, "r": 247.02536, "b": 637.8447875976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9659212827682495, "cells": [{"id": 21, "text": "3.2.2", "bbox": {"l": 64.800003, "t": 625.55472, "r": 94.20356, "b": 637.54272, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Built-in global variables", "bbox": {"l": 97.879005, "t": 625.55472, "r": 247.02536, "b": 637.54272, "coord_origin": "TOPLEFT"}}]}, "text": "3.2.2 Built-in global variables"}, {"label": "text", "id": 12, "page_no": 10, "cluster": {"id": 12, "label": "text", "bbox": {"l": 136.3346710205078, "t": 650.7590942382812, "r": 518.00116, "b": 672.92153, "coord_origin": "TOPLEFT"}, "confidence": 0.9696776866912842, "cells": [{"id": 23, "text": "Built-in global variables are provided with the database manager and are used in SQL ", "bbox": {"l": 136.8, "t": 651.70872, "r": 518.00116, "b": 660.92172, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "statements to retrieve scalar values that are associated with the variables.", "bbox": {"l": 136.8, "t": 663.70853, "r": 462.81759999999997, "b": 672.92153, "coord_origin": "TOPLEFT"}}]}, "text": "Built-in global variables are provided with the database manager and are used in SQL statements to retrieve scalar values that are associated with the variables."}, {"label": "text", "id": 13, "page_no": 10, "cluster": {"id": 13, "label": "text", "bbox": {"l": 136.17970275878906, "t": 684.6286010742188, "r": 532.3385, "b": 719.0675659179688, "coord_origin": "TOPLEFT"}, "confidence": 0.9783982038497925, "cells": [{"id": 25, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and ", "bbox": {"l": 136.8, "t": 685.7281, "r": 504.44669, "b": 694.941101, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "maintained by the system. These global variables can be used to identify attributes of the ", "bbox": {"l": 136.8, "t": 697.727905, "r": 532.3385, "b": 706.94091, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "database connection and used as part of the RCAC logic.", "bbox": {"l": 136.8, "t": 709.727715, "r": 391.38257, "b": 718.94072, "coord_origin": "TOPLEFT"}}]}, "text": "IBM DB2 for i supports nine different built-in global variables that are read only and maintained by the system. These global variables can be used to identify attributes of the database connection and used as part of the RCAC logic."}, {"label": "table", "id": 14, "page_no": 10, "cluster": {"id": 14, "label": "table", "bbox": {"l": 134.54624938964844, "t": 103.41889190673828, "r": 542.0460815429688, "b": 204.2716064453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9731298685073853, "cells": [{"id": 28, "text": "Special register", "bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Corresponding value", "bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "USER or", "bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 178.26361, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "SESSION_USER", "bbox": {"l": 142.80002, "t": 140.53864, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "The effective user of the thread excluding adopted authority.", "bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "CURRENT_USER", "bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "The effective user of the thread including adopted authority. When no adopted ", "bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "authority is present, this has the same value as USER.", "bbox": {"l": 230.22061, "t": 170.53832999999997, "r": 447.36533, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "SYSTEM_USER", "bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "The authorization ID that initiated the connection.", "bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl", "fcel", "fcel", "nl"], "num_rows": 4, "num_cols": 2, "table_cells": [{"bbox": {"l": 142.8, "t": 110.53801999999985, "r": 209.67091, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Special register", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 230.18912000000003, "t": 110.53801999999985, "r": 319.93527, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Corresponding value", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80002, "t": 129.49834999999996, "r": 212.70122, "b": 148.86359000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "USER or SESSION_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.21973000000003, "t": 129.49834999999996, "r": 467.99069000000003, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread excluding adopted authority.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.80003, "t": 159.55835000000002, "r": 216.63962999999998, "b": 167.88329999999996, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CURRENT_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.19814, "t": 159.55835000000002, "r": 535.65082, "b": 178.86328000000003, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The effective user of the thread including adopted authority. When no adopted authority is present, this has the same value as USER.", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 142.8009, "t": 189.55804, "r": 209.7357, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "SYSTEM_USER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 230.2449, "t": 189.55804, "r": 425.64569, "b": 197.88300000000004, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "The authorization ID that initiated the connection.", "column_header": false, "row_header": false, "row_section": false}]}, {"label": "picture", "id": 15, "page_no": 10, "cluster": {"id": 15, "label": "picture", "bbox": {"l": 135.64837646484375, "t": 384.1737060546875, "r": 301.2367248535156, "b": 594.7566528320312, "coord_origin": "TOPLEFT"}, "confidence": 0.7221464514732361, "cells": [{"id": 39, "text": "Signed on as ALICE", "bbox": {"l": 140.7323, "t": 386.98453, "r": 216.40009, "b": 395.49527, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 410.87441999999993, "r": 191.70256, "b": 419.38516, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 422.81934, "r": 232.56117, "b": 431.33008, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CALL proc1", "bbox": {"l": 138.476, "t": 446.70923000000005, "r": 183.26944, "b": 455.21997, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "P1", "bbox": {"l": 148.4301, "t": 473.58524, "r": 184.17328, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "Proc1:", "bbox": {"l": 148.4301, "t": 473.58524, "r": 174.05859, "b": 482.09598, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "Owner = JOE", "bbox": {"l": 157.52185, "t": 485.53015, "r": 209.103, "b": 494.04089, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "SET OPTION USRPRF=*OWNER", "bbox": {"l": 157.52185, "t": 497.47507, "r": 281.68927, "b": 505.98581, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "USER = ALICE", "bbox": {"l": 148.4301, "t": 521.36493, "r": 201.65666, "b": 529.87567, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "CURRENT USER = JOE", "bbox": {"l": 148.4301, "t": 533.30984, "r": 234.57686999999999, "b": 541.82059, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "USER = ALICE", "bbox": {"l": 138.476, "t": 566.15842, "r": 191.70256, "b": 574.66917, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "CURRENT USER = ALICE", "bbox": {"l": 138.476, "t": 578.10333, "r": 232.56117, "b": 586.61409, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 10, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5751037597656, "t": 754.7044067382812, "r": 523.60162, "b": 764.0689086914062, "coord_origin": "TOPLEFT"}, "confidence": 0.9557498693466187, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 10, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 536.0416870117188, "t": 754.2877197265625, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9130511283874512, "cells": [{"id": 1, "text": "19", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "19"}]}}, {"page_no": 11, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {"12": {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "body": [{"label": "text", "id": 2, "page_no": 11, "cluster": {"id": 2, "label": "text", "bbox": {"l": 135.74647521972656, "t": 70.67481994628906, "r": 342.54773, "b": 80.84661102294922, "coord_origin": "TOPLEFT"}, "confidence": 0.8370974659919739, "cells": [{"id": 2, "text": "Table 3-2 lists the nine built-in global variables.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 342.54773, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 lists the nine built-in global variables."}, {"label": "caption", "id": 3, "page_no": 11, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.800003, "t": 92.83466339111328, "r": 201.82247924804688, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.913235604763031, "cells": [{"id": 3, "text": "Table 3-2 Built-in global variables", "bbox": {"l": 64.800003, "t": 93.49805000000003, "r": 201.18147, "b": 101.82299999999998, "coord_origin": "TOPLEFT"}}]}, "text": "Table 3-2 Built-in global variables"}, {"label": "section_header", "id": 4, "page_no": 11, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.34713745117188, "t": 320.619140625, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}, "confidence": 0.9645339846611023, "cells": [{"id": 4, "text": "3.3", "bbox": {"l": 64.800003, "t": 322.20071, "r": 87.318192, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "VERIFY_GROUP_FOR_USER function", "bbox": {"l": 91.821815, "t": 322.20071, "r": 384.36389, "b": 336.96371000000005, "coord_origin": "TOPLEFT"}}]}, "text": "3.3 VERIFY_GROUP_FOR_USER function"}, {"label": "text", "id": 5, "page_no": 11, "cluster": {"id": 5, "label": "text", "bbox": {"l": 135.8567352294922, "t": 353.8623962402344, "r": 547.23474, "b": 436.295166015625, "coord_origin": "TOPLEFT"}, "confidence": 0.9864333868026733, "cells": [{"id": 6, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily ", "bbox": {"l": 136.8, "t": 354.52872, "r": 542.83539, "b": 363.7417, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "intended for use with RCAC permissions and masks, it can be used in other SQL statements. ", "bbox": {"l": 136.8, "t": 366.52853, "r": 547.14783, "b": 375.74152, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "The first parameter must be one of these three special registers: SESSION_USER, USER, or ", "bbox": {"l": 136.8, "t": 378.52835, "r": 547.15106, "b": 387.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "CURRENT_USER. The second and subsequent parameters are a list of user or group ", "bbox": {"l": 136.80002, "t": 390.52817, "r": 520.62958, "b": 399.74115000000006, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "profiles. Each of these values must be 1 - 10 characters in length. These values are not ", "bbox": {"l": 136.80002, "t": 402.52798, "r": 524.88824, "b": 411.74097, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "validated for their existence, which means that you can specify the names of user profiles that ", "bbox": {"l": 136.80002, "t": 414.5278, "r": 547.23474, "b": 423.7407799999999, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "do not exist without receiving any kind of error.", "bbox": {"l": 136.80002, "t": 426.52762, "r": 342.04672, "b": 435.74060000000003, "coord_origin": "TOPLEFT"}}]}, "text": "The VERIFY_GROUP_FOR_USER function was added in IBM i 7.2. Although it is primarily intended for use with RCAC permissions and masks, it can be used in other SQL statements. The first parameter must be one of these three special registers: SESSION_USER, USER, or CURRENT_USER. The second and subsequent parameters are a list of user or group profiles. Each of these values must be 1 - 10 characters in length. These values are not validated for their existence, which means that you can specify the names of user profiles that do not exist without receiving any kind of error."}, {"label": "text", "id": 6, "page_no": 11, "cluster": {"id": 6, "label": "text", "bbox": {"l": 136.01950073242188, "t": 447.4029541015625, "r": 547.25739, "b": 481.70004, "coord_origin": "TOPLEFT"}, "confidence": 0.9807308912277222, "cells": [{"id": 13, "text": "If a special register value is in the list of user profiles or it is a member of a group profile ", "bbox": {"l": 136.80002, "t": 448.48743, "r": 525.1474, "b": 457.70041, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "included in the list, the function returns a long integer value of 1. Otherwise, it returns a value ", "bbox": {"l": 136.80002, "t": 460.48724, "r": 547.25739, "b": 469.70023, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "of 0. It never returns the null value.", "bbox": {"l": 136.80002, "t": 472.48706, "r": 289.84335, "b": 481.70004, "coord_origin": "TOPLEFT"}}]}, "text": "If a special register value is in the list of user profiles or it is a member of a group profile included in the list, the function returns a long integer value of 1. Otherwise, it returns a value of 0. It never returns the null value."}, {"label": "text", "id": 7, "page_no": 11, "cluster": {"id": 7, "label": "text", "bbox": {"l": 136.42428588867188, "t": 493.1253662109375, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}, "confidence": 0.9237534403800964, "cells": [{"id": 16, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:", "bbox": {"l": 136.80002, "t": 494.50662, "r": 458.44525000000004, "b": 503.7196, "coord_origin": "TOPLEFT"}}]}, "text": "Here is an example of using the VERIFY_GROUP_FOR_USER function:"}, {"label": "list_item", "id": 8, "page_no": 11, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 136.80002, "t": 510.5052795410156, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}, "confidence": 0.9338629841804504, "cells": [{"id": 17, "text": "1.", "bbox": {"l": 136.80002, "t": 511.5462, "r": 145.09804, "b": 520.75919, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "There are user profiles for MGR, JANE, JUDY, and TONY.", "bbox": {"l": 147.86403, "t": 511.5462, "r": 406.07751, "b": 520.75919, "coord_origin": "TOPLEFT"}}]}, "text": "1. There are user profiles for MGR, JANE, JUDY, and TONY."}, {"label": "list_item", "id": 9, "page_no": 11, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 135.8521728515625, "t": 527.8382568359375, "r": 396.98816, "b": 538.1942749023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9514460563659668, "cells": [{"id": 19, "text": "2.", "bbox": {"l": 136.80002, "t": 528.5260000000001, "r": 145.23297, "b": 537.739, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "The user profile JANE specifies a group profile of MGR.", "bbox": {"l": 148.04396, "t": 528.5260000000001, "r": 396.98816, "b": 537.739, "coord_origin": "TOPLEFT"}}]}, "text": "2. The user profile JANE specifies a group profile of MGR."}, {"label": "list_item", "id": 10, "page_no": 11, "cluster": {"id": 10, "label": "list_item", "bbox": {"l": 136.08595275878906, "t": 544.642333984375, "r": 536.5686, "b": 566.71861, "coord_origin": "TOPLEFT"}, "confidence": 0.951230525970459, "cells": [{"id": 21, "text": "3.", "bbox": {"l": 136.80002, "t": 545.50581, "r": 145.18951, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "If a user is connected to the server using user profile JANE, all of the following function ", "bbox": {"l": 147.98601, "t": 545.50581, "r": 536.5686, "b": 554.71881, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "invocations return a value of 1:", "bbox": {"l": 151.20018, "t": 557.50562, "r": 286.84641, "b": 566.71861, "coord_origin": "TOPLEFT"}}]}, "text": "3. If a user is connected to the server using user profile JANE, all of the following function invocations return a value of 1:"}, {"label": "code", "id": 11, "page_no": 11, "cluster": {"id": 11, "label": "code", "bbox": {"l": 149.8811798095703, "t": 574.31591796875, "r": 451.01605, "b": 641.9093627929688, "coord_origin": "TOPLEFT"}, "confidence": 0.7066468000411987, "cells": [{"id": 24, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR')", "bbox": {"l": 151.20018, "t": 574.69458, "r": 366.05725, "b": 583.46933, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR')", "bbox": {"l": 151.20018, "t": 586.69438, "r": 406.01678, "b": 595.46913, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE')", "bbox": {"l": 151.20018, "t": 598.69418, "r": 451.01605, "b": 607.46893, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "The following function invocation returns a value of 0:", "bbox": {"l": 151.20018, "t": 615.5246, "r": 385.87271, "b": 624.73759, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')", "bbox": {"l": 151.20018, "t": 632.65381, "r": 411.05655, "b": 641.4285600000001, "coord_origin": "TOPLEFT"}}]}, "text": "VERIFY_GROUP_FOR_USER (CURRENT_USER, 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR') VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JANE', 'MGR', 'STEVE') The following function invocation returns a value of 0: VERIFY_GROUP_FOR_USER (CURRENT_USER, 'JUDY', 'TONY')"}, {"label": "table", "id": 12, "page_no": 11, "cluster": {"id": 12, "label": "table", "bbox": {"l": 63.556331634521484, "t": 104.23389434814453, "r": 548.5687255859375, "b": 296.2246398925781, "coord_origin": "TOPLEFT"}, "confidence": 0.9868634939193726, "cells": [{"id": 29, "text": "Global variable", "bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "Type", "bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Description", "bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CLIENT_HOST", "bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "VARCHAR(255)", "bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Host name of the current client as returned by the system", "bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "CLIENT_IPADDR", "bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "VARCHAR(128)", "bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "IP address of the current client as returned by the system", "bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "CLIENT_PORT ", "bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "INTEGER", "bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "Port used by the current client to communicate with the server", "bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "PACKAGE_NAME", "bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "VARCHAR(128)", "bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "Name of the currently running package", "bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "PACKAGE_SCHEMA", "bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "VARCHAR(128)", "bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "Schema name of the currently running package", "bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "PACKAGE_VERSION", "bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "VARCHAR(64)", "bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Version identifier of the currently running package", "bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ROUTINE_SCHEMA", "bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "VARCHAR(128)", "bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "Schema name of the currently running routine", "bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ROUTINE_SPECIFIC_NAME", "bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "VARCHAR(128)", "bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 55, "text": "Name of the currently running routine", "bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}}, {"id": 56, "text": "ROUTINE_TYPE", "bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 57, "text": "CHAR(1)", "bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}}, {"id": 58, "text": "Type of the currently running routine", "bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}}]}, "text": null, "otsl_seq": ["ched", "ched", "ched", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl", "fcel", "fcel", "fcel", "nl"], "num_rows": 10, "num_cols": 3, "table_cells": [{"bbox": {"l": 70.800003, "t": 110.53801999999985, "r": 134.99071, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "Global variable", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 202.8894, "t": 110.53801999999985, "r": 223.34641, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "Type", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 281.8248, "t": 110.53801999999985, "r": 331.3428, "b": 118.86298, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 0, "end_row_offset_idx": 1, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Description", "column_header": true, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800003, "t": 129.49834999999996, "r": 132.7209, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_HOST", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.89029, "t": 129.49834999999996, "r": 267.07651, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(255)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84732, "t": 129.49834999999996, "r": 510.17548, "b": 137.82330000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 1, "end_row_offset_idx": 2, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Host name of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 148.51806999999997, "r": 140.66522, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_IPADDR", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.87231, "t": 148.51806999999997, "r": 267.07739, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.84549, "t": 148.51806999999997, "r": 509.60583, "b": 156.84302000000002, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 2, "end_row_offset_idx": 3, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "IP address of the current client as returned by the system", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 167.53778, "r": 134.98264, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "CLIENT_PORT", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.90294, "t": 167.53778, "r": 242.80084, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "INTEGER", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79785, "t": 167.53778, "r": 527.59222, "b": 175.86273000000006, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 3, "end_row_offset_idx": 4, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Port used by the current client to communicate with the server", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 186.5575, "r": 143.50925, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.80576, "t": 186.5575, "r": 267.06937, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.85187, "t": 186.5575, "r": 436.57259999999997, "b": 194.88244999999995, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 4, "end_row_offset_idx": 5, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 205.51782000000003, "r": 156.01654, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.83545, "t": 205.51782000000003, "r": 267.08646, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87076, "t": 205.51782000000003, "r": 470.44678, "b": 213.84276999999997, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 5, "end_row_offset_idx": 6, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 224.53754000000004, "r": 157.89932, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "PACKAGE_VERSION", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.72472, "t": 224.53754000000004, "r": 261.98254, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(64)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.74924, "t": 224.53754000000004, "r": 478.8438100000001, "b": 232.86248999999998, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 6, "end_row_offset_idx": 7, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Version identifier of the currently running package", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 243.55724999999995, "r": 154.41992, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SCHEMA", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.79312, "t": 243.55724999999995, "r": 267.09274, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.87164, "t": 243.55724999999995, "r": 464.26022, "b": 251.8822, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 7, "end_row_offset_idx": 8, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Schema name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800018, "t": 262.51757999999995, "r": 188.43991, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_SPECIFIC_NAME", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.84441, "t": 262.51757999999995, "r": 267.03693, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "VARCHAR(128)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.80682, "t": 262.51757999999995, "r": 430.40045, "b": 270.84253, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 8, "end_row_offset_idx": 9, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Name of the currently running routine", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 70.800034, "t": 281.53726, "r": 139.43135, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 0, "end_col_offset_idx": 1, "text": "ROUTINE_TYPE", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 202.74635, "t": 281.53726, "r": 239.28996000000004, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 1, "end_col_offset_idx": 2, "text": "CHAR(1)", "column_header": false, "row_header": false, "row_section": false}, {"bbox": {"l": 281.79065, "t": 281.53726, "r": 425.09131, "b": 289.86227, "coord_origin": "TOPLEFT"}, "row_span": 1, "col_span": 1, "start_row_offset_idx": 9, "end_row_offset_idx": 10, "start_col_offset_idx": 2, "end_col_offset_idx": 3, "text": "Type of the currently running routine", "column_header": false, "row_header": false, "row_section": false}]}], "headers": [{"label": "page_footer", "id": 0, "page_no": 11, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.85088348388672, "t": 754.3745727539062, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9187920093536377, "cells": [{"id": 0, "text": "20 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "20"}, {"label": "page_footer", "id": 1, "page_no": 11, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.31550598144531, "t": 754.6971435546875, "r": 334.42142, "b": 763.9706420898438, "coord_origin": "TOPLEFT"}, "confidence": 0.9505078196525574, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 12, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}, {"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "body": [{"label": "text", "id": 2, "page_no": 12, "cluster": {"id": 2, "label": "text", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 92.43304, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 2, "text": "RETURN", "bbox": {"l": 136.79959, "t": 71.65845000000002, "r": 166.73935, "b": 80.43322999999998, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "CASE", "bbox": {"l": 136.79959, "t": 83.65826000000004, "r": 156.77934, "b": 92.43304, "coord_origin": "TOPLEFT"}}]}, "text": "RETURN CASE"}, {"label": "code", "id": 3, "page_no": 12, "cluster": {"id": 3, "label": "code", "bbox": {"l": 136.79959, "t": 91.76913452148438, "r": 521.57428, "b": 261.5705871582031, "coord_origin": "TOPLEFT"}, "confidence": 0.778520941734314, "cells": [{"id": 4, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1", "bbox": {"l": 147.26993, "t": 95.65808000000015, "r": 466.61502, "b": 104.43286000000012, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 107.65790000000004, "r": 311.69717, "b": 116.43268, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 131.65752999999995, "r": 436.61547999999993, "b": 140.43231000000003, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "AND SESSION_USER = EMPLOYEES . USER_ID", "bbox": {"l": 147.54245, "t": 143.65734999999995, "r": 351.65668, "b": 152.43213000000003, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "THEN EMPLOYEES . DATE_OF_BIRTH", "bbox": {"l": 147.73068, "t": 155.65716999999995, "r": 311.69717, "b": 164.43195000000003, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 147.31944, "t": 179.65679999999998, "r": 436.61547999999993, "b": 188.43158000000005, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID", "bbox": {"l": 147.52335, "t": 191.65661999999998, "r": 356.63669, "b": 200.43140000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "THEN ( 9999 || '-' ||", "bbox": {"l": 147.63832, "t": 203.65643, "r": 261.44492, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-'", "bbox": {"l": 272.28363, "t": 203.65643, "r": 499.89682, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "||", "bbox": {"l": 510.73557, "t": 203.65643, "r": 521.57428, "b": 212.43120999999996, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "DAY (EMPLOYEES.DATE_OF_BIRTH ))", "bbox": {"l": 160.78555, "t": 215.65625, "r": 346.6767, "b": 224.43102999999996, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "ELSE NULL", "bbox": {"l": 149.51941, "t": 227.65607, "r": 206.75861, "b": 236.43084999999996, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": " END", "bbox": {"l": 136.79959, "t": 239.65588000000002, "r": 156.77934, "b": 248.43066, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": " ENABLE ;", "bbox": {"l": 136.79959, "t": 251.65570000000002, "r": 186.7191, "b": 260.43048, "coord_origin": "TOPLEFT"}}]}, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR', 'EMP' ) = 1 THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . DATE_OF_BIRTH WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 9999 || '-' || MONTH ( EMPLOYEES . DATE_OF_BIRTH ) || '-' || DAY (EMPLOYEES.DATE_OF_BIRTH )) ELSE NULL END ENABLE ;"}, {"label": "list_item", "id": 4, "page_no": 12, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 135.86044311523438, "t": 274.4537353515625, "r": 547.21222, "b": 296.77191162109375, "coord_origin": "TOPLEFT"}, "confidence": 0.8678946495056152, "cells": [{"id": 18, "text": "2.", "bbox": {"l": 136.79959, "t": 275.50591999999995, "r": 145.18994, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "The other column to mask in this example is the TAX_ID information. In this example, the ", "bbox": {"l": 147.98672, "t": 275.50591999999995, "r": 547.21222, "b": 284.7189, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "rules to enforce include the following ones:", "bbox": {"l": 151.19977, "t": 287.50574, "r": 339.37903, "b": 296.71871999999996, "coord_origin": "TOPLEFT"}}]}, "text": "2. The other column to mask in this example is the TAX_ID information. In this example, the rules to enforce include the following ones:"}, {"label": "list_item", "id": 5, "page_no": 12, "cluster": {"id": 5, "label": "list_item", "bbox": {"l": 151.1599578857422, "t": 303.3277282714844, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}, "confidence": 0.9461130499839783, "cells": [{"id": 21, "text": "-", "bbox": {"l": 152.0394, "t": 304.48553000000004, "r": 157.61201, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Human Resources can see the unmasked TAX_ID of the employees.", "bbox": {"l": 165.59894, "t": 304.48553000000004, "r": 469.1528, "b": 313.69852000000003, "coord_origin": "TOPLEFT"}}]}, "text": "-Human Resources can see the unmasked TAX_ID of the employees."}, {"label": "list_item", "id": 6, "page_no": 12, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 151.2740936279297, "t": 320.54925537109375, "r": 403.95953, "b": 330.8575439453125, "coord_origin": "TOPLEFT"}, "confidence": 0.9467734694480896, "cells": [{"id": 23, "text": "-", "bbox": {"l": 152.0394, "t": 321.52512, "r": 157.60504, "b": 330.7381, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Employees can see only their own unmasked TAX_ID.", "bbox": {"l": 165.59894, "t": 321.52512, "r": 403.95953, "b": 330.7381, "coord_origin": "TOPLEFT"}}]}, "text": "-Employees can see only their own unmasked TAX_ID."}, {"label": "list_item", "id": 7, "page_no": 12, "cluster": {"id": 7, "label": "list_item", "bbox": {"l": 151.4427947998047, "t": 337.3158264160156, "r": 545.16846, "b": 359.71771, "coord_origin": "TOPLEFT"}, "confidence": 0.9705167412757874, "cells": [{"id": 25, "text": "-", "bbox": {"l": 152.0394, "t": 338.50491, "r": 157.57019, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "Managers see a masked version of TAX_ID with the first five characters replaced with ", "bbox": {"l": 165.59894, "t": 338.50491, "r": 545.16846, "b": 347.7179, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "the X character (for example, XXX-XX-1234).", "bbox": {"l": 165.59894, "t": 350.50473, "r": 364.67947, "b": 359.71771, "coord_origin": "TOPLEFT"}}]}, "text": "-Managers see a masked version of TAX_ID with the first five characters replaced with the X character (for example, XXX-XX-1234)."}, {"label": "list_item", "id": 8, "page_no": 12, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 151.51747131347656, "t": 366.6339111328125, "r": 529.46362, "b": 377.1689147949219, "coord_origin": "TOPLEFT"}, "confidence": 0.9469640254974365, "cells": [{"id": 28, "text": "-", "bbox": {"l": 152.0394, "t": 367.48453, "r": 157.59309, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX.", "bbox": {"l": 165.59995, "t": 367.48453, "r": 529.46362, "b": 376.6975100000001, "coord_origin": "TOPLEFT"}}]}, "text": "-Any other person sees the entire TAX_ID as masked, for example, XXX-XX-XXXX."}, {"label": "list_item", "id": 9, "page_no": 12, "cluster": {"id": 9, "label": "list_item", "bbox": {"l": 150.69093322753906, "t": 383.80133056640625, "r": 530.0603, "b": 394.17559814453125, "coord_origin": "TOPLEFT"}, "confidence": 0.7003507614135742, "cells": [{"id": 30, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9.", "bbox": {"l": 151.19978, "t": 384.52411, "r": 530.0603, "b": 393.73709, "coord_origin": "TOPLEFT"}}]}, "text": "To implement this column mask, run the SQL statement that is shown in Example 3-9."}, {"label": "caption", "id": 10, "page_no": 12, "cluster": {"id": 10, "label": "caption", "bbox": {"l": 136.25662231445312, "t": 405.446044921875, "r": 352.31475830078125, "b": 415.0381164550781, "coord_origin": "TOPLEFT"}, "confidence": 0.8488205075263977, "cells": [{"id": 31, "text": "Example 3-9 Creating a mask on the TAX_ID column", "bbox": {"l": 136.8, "t": 406.51801, "r": 351.9873, "b": 414.84302, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-9 Creating a mask on the TAX_ID column"}, {"label": "code", "id": 11, "page_no": 12, "cluster": {"id": 11, "label": "code", "bbox": {"l": 135.95343017578125, "t": 418.5181884765625, "r": 535.87548828125, "b": 688.5432739257812, "coord_origin": "TOPLEFT"}, "confidence": 0.8411229848861694, "cells": [{"id": 32, "text": "CREATE MASK", "bbox": {"l": 136.8, "t": 423.67810000000003, "r": 192.91296, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ", "bbox": {"l": 203.11533, "t": 423.67810000000003, "r": 381.65659, "b": 432.45287999999994, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "ON", "bbox": {"l": 136.8, "t": 435.67792, "r": 148.54184, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "HR_SCHEMA.EMPLOYEES AS EMPLOYEES ", "bbox": {"l": 177.89645, "t": 435.67792, "r": 371.63684, "b": 444.45270000000005, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "FOR COLUMN", "bbox": {"l": 136.8, "t": 447.67773, "r": 199.25916, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "TAX_ID", "bbox": {"l": 211.75098, "t": 447.67773, "r": 249.22647, "b": 456.45251, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "RETURN ", "bbox": {"l": 136.8, "t": 459.67755, "r": 176.75952, "b": 468.45233, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "CASE ", "bbox": {"l": 136.8, "t": 471.67737, "r": 161.75977, "b": 480.45215, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1", "bbox": {"l": 152.84189, "t": 483.67719, "r": 441.59589, "b": 492.45197, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 495.677, "r": 291.7178, "b": 504.45178, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 ", "bbox": {"l": 152.80757, "t": 519.67661, "r": 451.6156, "b": 528.45139, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "AND SESSION_USER = EMPLOYEES . USER_ID ", "bbox": {"l": 153.21835, "t": 531.67642, "r": 366.65683, "b": 540.45117, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "THEN EMPLOYEES . TAX_ID", "bbox": {"l": 154.09363, "t": 543.6762200000001, "r": 286.67804, "b": 552.45097, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1", "bbox": {"l": 152.82599, "t": 567.67583, "r": 446.63561999999996, "b": 576.45058, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "AND SESSION_USER <> EMPLOYEES . USER_ID ", "bbox": {"l": 153.18398, "t": 579.67563, "r": 371.63684, "b": 588.45038, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) )", "bbox": {"l": 152.60088, "t": 591.67543, "r": 526.55469, "b": 600.45018, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 ", "bbox": {"l": 152.80757, "t": 615.67505, "r": 451.6156, "b": 624.4498, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "THEN EMPLOYEES . TAX_ID ", "bbox": {"l": 154.01309, "t": 627.67485, "r": 291.7178, "b": 636.4496, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 154.5134, "t": 651.67447, "r": 266.69827, "b": 660.44922, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "END", "bbox": {"l": 136.8, "t": 663.67427, "r": 157.7877, "b": 672.44904, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ENABLE ;", "bbox": {"l": 136.8, "t": 675.67409, "r": 181.73952, "b": 684.44884, "coord_origin": "TOPLEFT"}}]}, "text": "CREATE MASK HR_SCHEMA.MASK_TAX_ID_ON_EMPLOYEES ON HR_SCHEMA.EMPLOYEES AS EMPLOYEES FOR COLUMN TAX_ID RETURN CASE WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'HR' ) = 1 THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER = EMPLOYEES . USER_ID THEN EMPLOYEES . TAX_ID WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'MGR' ) = 1 AND SESSION_USER <> EMPLOYEES . USER_ID THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( EMPLOYEES . TAX_ID , 8 , 4 ) ) WHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , 'EMP' ) = 1 THEN EMPLOYEES . TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 12, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 344.5617370605469, "t": 754.6708374023438, "r": 523.60162, "b": 764.1358032226562, "coord_origin": "TOPLEFT"}, "confidence": 0.9556928277015686, "cells": [{"id": 0, "text": "Chapter 3. Row and Column Access Control ", "bbox": {"l": 344.94, "t": 755.538002, "r": 523.60162, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 3. Row and Column Access Control"}, {"label": "page_footer", "id": 1, "page_no": 12, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.6422729492188, "t": 754.1753540039062, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9105784296989441, "cells": [{"id": 1, "text": "27", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "27"}]}}, {"page_no": 13, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 13, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.14459228515625, "t": 70.61093139648438, "r": 449.9523899999999, "b": 81.22673034667969, "coord_origin": "TOPLEFT"}, "confidence": 0.8751051425933838, "cells": [{"id": 2, "text": "3.", "bbox": {"l": 136.8, "t": 71.50867000000005, "r": 145.22156, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 3-10 shows the masks that are created in the HR_SCHEMA.", "bbox": {"l": 148.02872, "t": 71.50867000000005, "r": 449.9523899999999, "b": 80.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "3. Figure 3-10 shows the masks that are created in the HR_SCHEMA."}, {"label": "caption", "id": 3, "page_no": 13, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 64.17350769042969, "t": 172.7456512451172, "r": 294.42578125, "b": 181.8983612060547, "coord_origin": "TOPLEFT"}, "confidence": 0.944426953792572, "cells": [{"id": 4, "text": "Figure 3-10 Column masks shown in System i Navigator", "bbox": {"l": 64.800003, "t": 173.53801999999996, "r": 293.13809, "b": 181.86298, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-10 Column masks shown in System i Navigator"}, {"label": "section_header", "id": 4, "page_no": 13, "cluster": {"id": 4, "label": "section_header", "bbox": {"l": 64.29059600830078, "t": 201.6618194580078, "r": 203.98521, "b": 214.99534606933594, "coord_origin": "TOPLEFT"}, "confidence": 0.9645015001296997, "cells": [{"id": 5, "text": "3.6.6", "bbox": {"l": 64.800003, "t": 202.37469, "r": 94.275139, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "Activating RCAC", "bbox": {"l": 97.959534, "t": 202.37469, "r": 203.98521, "b": 214.36273000000006, "coord_origin": "TOPLEFT"}}]}, "text": "3.6.6 Activating RCAC"}, {"label": "text", "id": 5, "page_no": 13, "cluster": {"id": 5, "label": "text", "bbox": {"l": 136.1686553955078, "t": 228.097412109375, "r": 547.22565, "b": 262.4639587402344, "coord_origin": "TOPLEFT"}, "confidence": 0.9768573045730591, "cells": [{"id": 7, "text": "Now that you have created the row permission and the two column masks, RCAC must be ", "bbox": {"l": 136.8, "t": 228.52868999999998, "r": 537.09131, "b": 237.74170000000004, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "activated. The row permission and the two column masks are enabled (last clause in the ", "bbox": {"l": 136.8, "t": 240.5285, "r": 529.20422, "b": 249.74152000000004, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "scripts), but now you must activate RCAC on the table. To do so, complete the following steps:", "bbox": {"l": 136.8, "t": 252.52832, "r": 547.22565, "b": 261.74132999999995, "coord_origin": "TOPLEFT"}}]}, "text": "Now that you have created the row permission and the two column masks, RCAC must be activated. The row permission and the two column masks are enabled (last clause in the scripts), but now you must activate RCAC on the table. To do so, complete the following steps:"}, {"label": "list_item", "id": 6, "page_no": 13, "cluster": {"id": 6, "label": "list_item", "bbox": {"l": 136.5933074951172, "t": 268.52996826171875, "r": 409.47888, "b": 278.8722229003906, "coord_origin": "TOPLEFT"}, "confidence": 0.9059442281723022, "cells": [{"id": 10, "text": "1.", "bbox": {"l": 136.8, "t": 269.50811999999996, "r": 145.32378, "b": 278.72113, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Run the SQL statements that are shown in Example 3-10.", "bbox": {"l": 148.16501, "t": 269.50811999999996, "r": 409.47888, "b": 278.72113, "coord_origin": "TOPLEFT"}}]}, "text": "1. Run the SQL statements that are shown in Example 3-10."}, {"label": "section_header", "id": 7, "page_no": 13, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 136.31597900390625, "t": 290.4278564453125, "r": 375.29099, "b": 300.4970703125, "coord_origin": "TOPLEFT"}, "confidence": 0.6570106148719788, "cells": [{"id": 12, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table ", "bbox": {"l": 136.8, "t": 291.55798, "r": 375.29099, "b": 299.88300000000004, "coord_origin": "TOPLEFT"}}]}, "text": "Example 3-10 Activating RCAC on the EMPLOYEES table"}, {"label": "list_item", "id": 8, "page_no": 13, "cluster": {"id": 8, "label": "list_item", "bbox": {"l": 135.7803192138672, "t": 307.09222412109375, "r": 376.67661, "b": 318.0027160644531, "coord_origin": "TOPLEFT"}, "confidence": 0.6002406477928162, "cells": [{"id": 13, "text": "/*", "bbox": {"l": 136.8, "t": 308.65811, "r": 147.22942, "b": 317.43289, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "Active Row Access Control (permissions) */", "bbox": {"l": 157.65884, "t": 308.65811, "r": 376.67661, "b": 317.43289, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Row Access Control (permissions) */"}, {"label": "text", "id": 9, "page_no": 13, "cluster": {"id": 9, "label": "text", "bbox": {"l": 136.8, "t": 320.65793, "r": 354.86963, "b": 365.43216, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 15, "text": "/*", "bbox": {"l": 136.8, "t": 320.65793, "r": 147.70349, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "Active Column Access Control (masks)", "bbox": {"l": 158.60696, "t": 320.65793, "r": 354.86963, "b": 329.43271, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "ALTER TABLE HR_SCHEMA.EMPLOYEES", "bbox": {"l": 136.8, "t": 332.65775, "r": 291.7178, "b": 341.43253, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ACTIVATE ROW ACCESS CONTROL", "bbox": {"l": 136.8, "t": 344.65756, "r": 271.67831, "b": 353.43234000000007, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "ACTIVATE COLUMN ACCESS CONTROL;", "bbox": {"l": 136.8, "t": 356.65738, "r": 291.7178, "b": 365.43216, "coord_origin": "TOPLEFT"}}]}, "text": "/* Active Column Access Control (masks) ALTER TABLE HR_SCHEMA.EMPLOYEES ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL;"}, {"label": "text", "id": 10, "page_no": 13, "cluster": {"id": 10, "label": "text", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 17, "text": "*/", "bbox": {"l": 365.77313, "t": 320.65793, "r": 376.67661, "b": 329.43271, "coord_origin": "TOPLEFT"}}]}, "text": "*/"}, {"label": "list_item", "id": 11, "page_no": 13, "cluster": {"id": 11, "label": "list_item", "bbox": {"l": 135.87640380859375, "t": 379.3264465332031, "r": 540.80145, "b": 413.72021, "coord_origin": "TOPLEFT"}, "confidence": 0.9449256658554077, "cells": [{"id": 21, "text": "2.", "bbox": {"l": 136.8, "t": 380.5076, "r": 145.14954, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from ", "bbox": {"l": 147.93271, "t": 380.5076, "r": 540.80145, "b": 389.72058, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "the main navigation pane of System i Navigator, click ", "bbox": {"l": 151.20013, "t": 392.50742, "r": 387.36169, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "Schemas", "bbox": {"l": 387.29993, "t": 392.50742, "r": 431.07614, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "\uf0ae", "bbox": {"l": 433.85992000000005, "t": 389.64889999999997, "r": 443.69043, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "HR_SCHEMA", "bbox": {"l": 446.51906999999994, "t": 392.50742, "r": 509.73618000000005, "b": 401.7203999999999, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "\uf0ae", "bbox": {"l": 512.5788, "t": 389.64889999999997, "r": 522.4093, "b": 401.83994, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Tables", "bbox": {"l": 151.19812, "t": 404.50723000000005, "r": 181.12892, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": ", right-click the ", "bbox": {"l": 181.79823, "t": 404.50723000000005, "r": 248.99638, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "EMPLOYEES", "bbox": {"l": 248.93860000000004, "t": 404.50723000000005, "r": 310.44357, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": " table, and click ", "bbox": {"l": 310.49835, "t": 404.50723000000005, "r": 381.53305, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "Definition", "bbox": {"l": 381.59882, "t": 404.50723000000005, "r": 427.68176, "b": 413.72021, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": ".", "bbox": {"l": 427.67877, "t": 404.50723000000005, "r": 430.4476599999999, "b": 413.72021, "coord_origin": "TOPLEFT"}}]}, "text": "2. Look at the definition of the EMPLOYEE table, as shown in Figure 3-11. To do this, from the main navigation pane of System i Navigator, click Schemas \uf0ae HR_SCHEMA \uf0ae Tables , right-click the EMPLOYEES table, and click Definition ."}, {"label": "caption", "id": 12, "page_no": 13, "cluster": {"id": 12, "label": "caption", "bbox": {"l": 64.33819580078125, "t": 648.241943359375, "r": 348.354736328125, "b": 657.4004516601562, "coord_origin": "TOPLEFT"}, "confidence": 0.9499983787536621, "cells": [{"id": 34, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator", "bbox": {"l": 64.800003, "t": 649.0378900000001, "r": 347.43054, "b": 657.3629, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 3-11 Selecting the EMPLOYEES table from System i Navigator"}, {"label": "picture", "id": 13, "page_no": 13, "cluster": {"id": 13, "label": "picture", "bbox": {"l": 63.98516845703125, "t": 427.9049987792969, "r": 530.0479125976562, "b": 646.1395874023438, "coord_origin": "TOPLEFT"}, "confidence": 0.9801459908485413, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 14, "page_no": 13, "cluster": {"id": 14, "label": "picture", "bbox": {"l": 63.801902770996094, "t": 95.38243103027344, "r": 547.11474609375, "b": 170.03213500976562, "coord_origin": "TOPLEFT"}, "confidence": 0.9635391235351562, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 13, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 63.84088897705078, "t": 754.3895874023438, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9162001013755798, "cells": [{"id": 0, "text": "28 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 78.402, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "28"}, {"label": "page_footer", "id": 1, "page_no": 13, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 93.28304290771484, "t": 754.72412109375, "r": 334.42142, "b": 763.943603515625, "coord_origin": "TOPLEFT"}, "confidence": 0.9540064334869385, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 93.420303, "t": 755.538002, "r": 334.42142, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 14, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}, {"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "body": [{"label": "list_item", "id": 2, "page_no": 14, "cluster": {"id": 2, "label": "list_item", "bbox": {"l": 136.00341796875, "t": 70.4630355834961, "r": 514.04858, "b": 104.82832336425781, "coord_origin": "TOPLEFT"}, "confidence": 0.9761855006217957, "cells": [{"id": 2, "text": "2.", "bbox": {"l": 136.79959, "t": 71.50903000000005, "r": 145.19554, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC ", "bbox": {"l": 147.9942, "t": 71.50903000000005, "r": 513.35919, "b": 80.72204999999985, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "enabled. It is clear that the implementation of the SQL statement is more complex ", "bbox": {"l": 151.19975, "t": 83.50885000000017, "r": 514.04858, "b": 92.72185999999999, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "because the row permission rule becomes part of the ", "bbox": {"l": 151.19975, "t": 95.50867000000005, "r": 389.64822, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "WHERE", "bbox": {"l": 389.57941, "t": 95.65808000000015, "r": 414.53918, "b": 104.48266999999998, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": " clause.", "bbox": {"l": 414.59991, "t": 95.50867000000005, "r": 448.8892200000001, "b": 104.72167999999999, "coord_origin": "TOPLEFT"}}]}, "text": "2. Figure 4-68 shows the Visual Explain of the same SQL statement, but with RCAC enabled. It is clear that the implementation of the SQL statement is more complex because the row permission rule becomes part of the WHERE clause."}, {"label": "caption", "id": 3, "page_no": 14, "cluster": {"id": 3, "label": "caption", "bbox": {"l": 135.9990692138672, "t": 480.2080078125, "r": 327.9913635253906, "b": 489.21875, "coord_origin": "TOPLEFT"}, "confidence": 0.9529653191566467, "cells": [{"id": 8, "text": "Figure 4-68 Visual Explain with RCAC enabled", "bbox": {"l": 136.8, "t": 480.55798, "r": 327.09329, "b": 488.883, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-68 Visual Explain with RCAC enabled"}, {"label": "list_item", "id": 4, "page_no": 14, "cluster": {"id": 4, "label": "list_item", "bbox": {"l": 136.2928924560547, "t": 505.9650573730469, "r": 547.23944, "b": 540.0134887695312, "coord_origin": "TOPLEFT"}, "confidence": 0.9766737818717957, "cells": [{"id": 9, "text": "3.", "bbox": {"l": 136.8, "t": 506.56863, "r": 145.17432, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "Compare the advised indexes that are provided by the Optimizer without RCAC and with ", "bbox": {"l": 147.96574, "t": 506.56863, "r": 543.63715, "b": 515.78162, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC ", "bbox": {"l": 151.20016, "t": 518.56845, "r": 547.23944, "b": 527.78143, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "enabled. The index being advised is for the ORDER BY clause.", "bbox": {"l": 151.20016, "t": 530.5682400000001, "r": 430.28333, "b": 539.78125, "coord_origin": "TOPLEFT"}}]}, "text": "3. Compare the advised indexes that are provided by the Optimizer without RCAC and with RCAC enabled. Figure 4-69 shows the index advice for the SQL statement without RCAC enabled. The index being advised is for the ORDER BY clause."}, {"label": "caption", "id": 5, "page_no": 14, "cluster": {"id": 5, "label": "caption", "bbox": {"l": 64.35660552978516, "t": 666.6797485351562, "r": 227.347412109375, "b": 675.9388427734375, "coord_origin": "TOPLEFT"}, "confidence": 0.9514287114143372, "cells": [{"id": 13, "text": "Figure 4-69 Index advice with no RCAC", "bbox": {"l": 64.800003, "t": 667.5179, "r": 227.10149, "b": 675.8429, "coord_origin": "TOPLEFT"}}]}, "text": "Figure 4-69 Index advice with no RCAC"}, {"label": "picture", "id": 6, "page_no": 14, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 136.5016632080078, "t": 119.2491226196289, "r": 545.4508666992188, "b": 477.5412292480469, "coord_origin": "TOPLEFT"}, "confidence": 0.9864527583122253, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "picture", "id": 7, "page_no": 14, "cluster": {"id": 7, "label": "picture", "bbox": {"l": 64.27847290039062, "t": 553.5813598632812, "r": 506.39263916015625, "b": 664.0870361328125, "coord_origin": "TOPLEFT"}, "confidence": 0.9797717928886414, "cells": []}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}], "headers": [{"label": "page_footer", "id": 0, "page_no": 14, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 214.30316162109375, "t": 754.7198486328125, "r": 523.59357, "b": 764.0086669921875, "coord_origin": "TOPLEFT"}, "confidence": 0.9557602405548096, "cells": [{"id": 0, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example ", "bbox": {"l": 214.8, "t": 755.538002, "r": 523.59357, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Chapter 4. Implementing Row and Column Access Control: Banking example"}, {"label": "page_footer", "id": 1, "page_no": 14, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 535.3654174804688, "t": 754.280029296875, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.9056527614593506, "cells": [{"id": 1, "text": "77", "bbox": {"l": 536.09998, "t": 754.848721, "r": 547.25916, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "77"}]}}, {"page_no": 15, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "body": [{"label": "code", "id": 2, "page_no": 15, "cluster": {"id": 2, "label": "code", "bbox": {"l": 62.60613250732422, "t": 69.35981750488281, "r": 500.69727, "b": 707.7635498046875, "coord_origin": "TOPLEFT"}, "confidence": 0.763217568397522, "cells": [{"id": 2, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 71.67296999999996, "r": 177.1194, "b": 79.60199, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 82.65295000000015, "r": 365.87817, "b": 90.58196999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) ", "bbox": {"l": 64.800308, "t": 93.63292999999999, "r": 392.81787, "b": 101.56195000000002, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 104.67322000000001, "r": 374.87817, "b": 112.60222999999996, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "THEN C . CUSTOMER_TAX_ID ", "bbox": {"l": 64.800308, "t": 115.65319999999997, "r": 177.1194, "b": 123.58220999999992, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "ELSE 'XXX-XX-XXXX' ", "bbox": {"l": 64.800308, "t": 126.63318000000015, "r": 150.1797, "b": 134.56219, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "END ", "bbox": {"l": 64.800308, "t": 137.67345999999998, "r": 96.240005, "b": 145.60248, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 148.65344000000005, "r": 124.14001, "b": 156.58245999999997, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 170.67377, "r": 460.25757, "b": 178.60278000000005, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 79.20031, "t": 181.65374999999995, "r": 272.45911, "b": 189.58276, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 192.69403, "r": 137.64001, "b": 200.62305000000003, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 203.67400999999995, "r": 361.37817, "b": 211.60303, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 214.65399000000002, "r": 249.0591, "b": 222.58300999999994, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 ", "bbox": {"l": 64.800308, "t": 225.69426999999996, "r": 365.87817, "b": 233.62329, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 236.67426, "r": 249.0591, "b": 244.60326999999995, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 247.65423999999996, "r": 374.87817, "b": 255.58325000000002, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ", "bbox": {"l": 64.800308, "t": 258.69452, "r": 249.0591, "b": 266.62354000000005, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "ELSE '*************' ", "bbox": {"l": 64.800308, "t": 269.67449999999997, "r": 159.1797, "b": 277.60352, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "END ", "bbox": {"l": 64.800308, "t": 280.65454, "r": 96.240005, "b": 288.58353, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 291.69485000000003, "r": 124.14001, "b": 299.62384, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 313.65485, "r": 428.81786999999997, "b": 321.58383, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "FOR COLUMN CUSTOMER_LOGIN_ID ", "bbox": {"l": 79.20031, "t": 324.69516, "r": 209.51941, "b": 332.62415, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 335.67517, "r": 137.64001, "b": 343.6041599999999, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 346.65518, "r": 361.37817, "b": 354.58417, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 357.69550000000004, "r": 186.1194, "b": 365.62448, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 368.67551, "r": 374.87817, "b": 376.60449, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "THEN C . CUSTOMER_LOGIN_ID ", "bbox": {"l": 64.800308, "t": 379.65552, "r": 186.1194, "b": 387.5845, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 390.69583, "r": 123.24001, "b": 398.62482, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "END ", "bbox": {"l": 64.800308, "t": 401.67584, "r": 96.240005, "b": 409.60482999999994, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 412.65585, "r": 124.14001, "b": 420.58484, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 434.67615, "r": 469.25757, "b": 442.60513, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 79.20031, "t": 445.65616000000006, "r": 249.95911, "b": 453.58514, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 456.6964699999999, "r": 137.64001, "b": 464.62546, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 467.67648, "r": 361.37817, "b": 475.60547, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 478.65649, "r": 226.5591, "b": 486.58548, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 489.69681, "r": 374.87817, "b": 497.62579, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "THEN C . CUSTOMER_SECURITY_QUESTION ", "bbox": {"l": 64.800308, "t": 500.67682, "r": 226.5591, "b": 508.6058, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 511.65683, "r": 123.24001, "b": 519.58582, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "END ", "bbox": {"l": 64.800308, "t": 522.69714, "r": 96.240005, "b": 530.62613, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 533.6771200000001, "r": 124.14001, "b": 541.60614, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C ", "bbox": {"l": 64.800308, "t": 555.69745, "r": 500.69727, "b": 563.62645, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 79.20031, "t": 566.6774399999999, "r": 281.3988, "b": 574.60645, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "RETURN CASE ", "bbox": {"l": 79.20031, "t": 577.65744, "r": 137.64001, "b": 585.58644, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 ", "bbox": {"l": 64.800308, "t": 588.6977400000001, "r": 361.37817, "b": 596.62674, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 599.67773, "r": 258.05908, "b": 607.60674, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 ", "bbox": {"l": 64.800308, "t": 610.65773, "r": 374.87817, "b": 618.58673, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ", "bbox": {"l": 64.800308, "t": 621.69803, "r": 258.05908, "b": 629.62703, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "ELSE '*****' ", "bbox": {"l": 64.800308, "t": 632.6780200000001, "r": 123.24001, "b": 640.60703, "coord_origin": "TOPLEFT"}}, {"id": 50, "text": "END ", "bbox": {"l": 64.800308, "t": 643.71832, "r": 96.240005, "b": 651.64732, "coord_origin": "TOPLEFT"}}, {"id": 51, "text": "ENABLE ; ", "bbox": {"l": 79.20031, "t": 654.69832, "r": 124.14001, "b": 662.62732, "coord_origin": "TOPLEFT"}}, {"id": 52, "text": "ALTER TABLE BANK_SCHEMA.CUSTOMERS ", "bbox": {"l": 64.800308, "t": 676.71861, "r": 226.5591, "b": 684.64761, "coord_origin": "TOPLEFT"}}, {"id": 53, "text": "ACTIVATE ROW ACCESS CONTROL ", "bbox": {"l": 79.20031, "t": 687.69862, "r": 214.01941, "b": 695.627617, "coord_origin": "TOPLEFT"}}, {"id": 54, "text": "ACTIVATE COLUMN ACCESS CONTROL ;", "bbox": {"l": 79.20031, "t": 698.678619, "r": 223.01941, "b": 706.60762, "coord_origin": "TOPLEFT"}}]}, "text": "THEN C . CUSTOMER_TAX_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN ( 'XXX-XX-' CONCAT QSYS2 . SUBSTR ( C . CUSTOMER_TAX_ID , 8 , 4 ) ) WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_TAX_ID ELSE 'XXX-XX-XXXX' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_DRIVERS_LICENSE_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_DRIVERS_LICENSE_NUMBER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'TELLER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_DRIVERS_LICENSE_NUMBER ELSE '*************' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_LOGIN_ID_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_LOGIN_ID RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_LOGIN_ID WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_LOGIN_ID ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION ELSE '*****' END ENABLE ; CREATE MASK BANK_SCHEMA.MASK_SECURITY_QUESTION_ANSWER_ON_CUSTOMERS ON BANK_SCHEMA.CUSTOMERS AS C FOR COLUMN CUSTOMER_SECURITY_QUESTION_ANSWER RETURN CASE WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'ADMIN' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER WHEN QSYS2 . VERIFY_GROUP_FOR_USER ( SESSION_USER , 'CUSTOMER' ) = 1 THEN C . CUSTOMER_SECURITY_QUESTION_ANSWER ELSE '*****' END ENABLE ; ALTER TABLE BANK_SCHEMA.CUSTOMERS ACTIVATE ROW ACCESS CONTROL ACTIVATE COLUMN ACCESS CONTROL ;"}], "headers": [{"label": "page_footer", "id": 0, "page_no": 15, "cluster": {"id": 0, "label": "page_footer", "bbox": {"l": 64.50080871582031, "t": 754.5338745117188, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}, "confidence": 0.8994000554084778, "cells": [{"id": 0, "text": "124 ", "bbox": {"l": 64.800003, "t": 754.848721, "r": 83.982002, "b": 764.06172, "coord_origin": "TOPLEFT"}}]}, "text": "124"}, {"label": "page_footer", "id": 1, "page_no": 15, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 98.63966369628906, "t": 754.71435546875, "r": 339.882080078125, "b": 764.0100708007812, "coord_origin": "TOPLEFT"}, "confidence": 0.9430771470069885, "cells": [{"id": 1, "text": "Row and Column Access Control Support in IBM DB2 for i", "bbox": {"l": 98.940002, "t": 755.538002, "r": 339.81958, "b": 763.863001, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}]}}, {"page_no": 16, "size": {"width": 612.0, "height": 792.0}, "cells": [], "predictions": {"layout": {"clusters": []}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [], "body": [], "headers": []}}, {"page_no": 17, "size": {"width": 612.0, "height": 792.0}, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}, {"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}, {"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}, {"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}, {"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}, {"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}, {"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}, {"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}, {"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "body": [{"label": "picture", "id": 0, "page_no": 17, "cluster": {"id": 0, "label": "picture", "bbox": {"l": 485.1698303222656, "t": 25.259197235107422, "r": 566.2962036132812, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}, "confidence": 0.9404253363609314, "cells": [{"id": 0, "text": "fi", "bbox": {"l": 558.11987, "t": 45.468689999999924, "r": 565.46039, "b": 54.68169999999998, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "text", "id": 2, "page_no": 17, "cluster": {"id": 2, "label": "text", "bbox": {"l": 466.3692626953125, "t": 247.39378356933594, "r": 559.80933, "b": 302.16061, "coord_origin": "TOPLEFT"}, "confidence": 0.8532671332359314, "cells": [{"id": 2, "text": "INTERNATIONAL ", "bbox": {"l": 467.3399999999999, "t": 247.71831999999995, "r": 559.80933, "b": 260.16052, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "TECHNICAL", "bbox": {"l": 467.3399999999999, "t": 261.75842, "r": 529.50208, "b": 274.20061999999996, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "SUPPORT", "bbox": {"l": 467.3399999999999, "t": 275.73839999999996, "r": 518.93317, "b": 288.1806, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "ORGANIZATION", "bbox": {"l": 467.3399999999999, "t": 289.71841, "r": 550.7475, "b": 302.16061, "coord_origin": "TOPLEFT"}}]}, "text": "INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION"}, {"label": "text", "id": 3, "page_no": 17, "cluster": {"id": 3, "label": "text", "bbox": {"l": 466.3262939453125, "t": 351.4299011230469, "r": 587.38916, "b": 386.47198, "coord_origin": "TOPLEFT"}, "confidence": 0.7157137989997864, "cells": [{"id": 6, "text": "BUILDING TECHNICAL ", "bbox": {"l": 467.3399999999999, "t": 351.79199, "r": 571.70758, "b": 362.47198, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "INFORMATION BASED ON ", "bbox": {"l": 467.3399999999999, "t": 363.79199, "r": 587.38916, "b": 374.47198, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "PRACTICAL EXPERIENCE", "bbox": {"l": 467.3399999999999, "t": 375.79199, "r": 582.5556, "b": 386.47198, "coord_origin": "TOPLEFT"}}]}, "text": "BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE"}, {"label": "text", "id": 4, "page_no": 17, "cluster": {"id": 4, "label": "text", "bbox": {"l": 466.1037292480469, "t": 398.81231689453125, "r": 587.52051, "b": 541.63406, "coord_origin": "TOPLEFT"}, "confidence": 0.9518945813179016, "cells": [{"id": 9, "text": "IBM Redbooks are developed ", "bbox": {"l": 467.3399999999999, "t": 399.8602900000001, "r": 587.46674, "b": 409.63251, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "by the IBM International ", "bbox": {"l": 467.3399999999999, "t": 410.90067, "r": 566.34229, "b": 420.67285, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "Technical Support ", "bbox": {"l": 467.3399999999999, "t": 421.88068, "r": 543.20404, "b": 431.65289, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "Organization. Experts from ", "bbox": {"l": 467.3399999999999, "t": 432.8606899999999, "r": 577.76697, "b": 442.63287, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "IBM, Customers and Partners ", "bbox": {"l": 467.3399999999999, "t": 443.90106, "r": 587.40948, "b": 453.67328, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "from around the world create ", "bbox": {"l": 467.3399999999999, "t": 454.88107, "r": 587.52051, "b": 464.65326, "coord_origin": "TOPLEFT"}}, {"id": 15, "text": "timely technical information ", "bbox": {"l": 467.3399999999999, "t": 465.86108, "r": 582.67505, "b": 475.6333, "coord_origin": "TOPLEFT"}}, {"id": 16, "text": "based on realistic scenarios. ", "bbox": {"l": 467.3399999999999, "t": 476.90146, "r": 585.46722, "b": 486.67365, "coord_origin": "TOPLEFT"}}, {"id": 17, "text": "Specific recommendations ", "bbox": {"l": 467.3399999999999, "t": 487.88147, "r": 577.70874, "b": 497.65369, "coord_origin": "TOPLEFT"}}, {"id": 18, "text": "are provided to help you ", "bbox": {"l": 467.3399999999999, "t": 498.86148, "r": 568.03546, "b": 508.63367, "coord_origin": "TOPLEFT"}}, {"id": 19, "text": "implement IT solutions more ", "bbox": {"l": 467.3399999999999, "t": 509.90186, "r": 585.44525, "b": 519.67407, "coord_origin": "TOPLEFT"}}, {"id": 20, "text": "effectively in your ", "bbox": {"l": 467.3399999999999, "t": 520.8818699999999, "r": 541.4967, "b": 530.65405, "coord_origin": "TOPLEFT"}}, {"id": 21, "text": "environment.", "bbox": {"l": 467.3399999999999, "t": 531.8618799999999, "r": 520.64893, "b": 541.63406, "coord_origin": "TOPLEFT"}}]}, "text": "IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment."}, {"label": "text", "id": 5, "page_no": 17, "cluster": {"id": 5, "label": "text", "bbox": {"l": 466.66748046875, "t": 577.88818359375, "r": 571.0052490234375, "b": 601.5119, "coord_origin": "TOPLEFT"}, "confidence": 0.8230004906654358, "cells": [{"id": 22, "text": "For more information:", "bbox": {"l": 467.3399999999999, "t": 578.83191, "r": 570.948, "b": 589.5119, "coord_origin": "TOPLEFT"}}, {"id": 23, "text": "ibm.com", "bbox": {"l": 467.3399999999999, "t": 590.83191, "r": 508.59961, "b": 601.5119, "coord_origin": "TOPLEFT"}}, {"id": 24, "text": "/redbooks", "bbox": {"l": 508.56000000000006, "t": 590.83191, "r": 552.74518, "b": 601.5119, "coord_origin": "TOPLEFT"}}]}, "text": "For more information: ibm.com /redbooks"}, {"label": "picture", "id": 6, "page_no": 17, "cluster": {"id": 6, "label": "picture", "bbox": {"l": 474.35540771484375, "t": 80.05133819580078, "r": 592.2726440429688, "b": 189.8126220703125, "coord_origin": "TOPLEFT"}, "confidence": 0.9696109890937805, "cells": [{"id": 25, "text": "Redpaper", "bbox": {"l": 474.60001, "t": 164.05658000000005, "r": 580.88989, "b": 188.94097999999997, "coord_origin": "TOPLEFT"}}, {"id": 26, "text": "\u2122", "bbox": {"l": 582.53992, "t": 172.32714999999996, "r": 592.13989, "b": 181.20714999999996, "coord_origin": "TOPLEFT"}}]}, "text": "", "annotations": [], "provenance": null, "predicted_class": null, "confidence": null}, {"label": "section_header", "id": 7, "page_no": 17, "cluster": {"id": 7, "label": "section_header", "bbox": {"l": 26.454715728759766, "t": 71.63792419433594, "r": 447.36002, "b": 141.0381317138672, "coord_origin": "TOPLEFT"}, "confidence": 0.7128154635429382, "cells": [{"id": 27, "text": "Row and Column Access Control ", "bbox": {"l": 27.0, "t": 73.63799999999992, "r": 447.36002, "b": 103.00800000000004, "coord_origin": "TOPLEFT"}}, {"id": 28, "text": "Support in IBM DB2 for i", "bbox": {"l": 27.0, "t": 113.76000999999997, "r": 314.43002, "b": 140.46002, "coord_origin": "TOPLEFT"}}]}, "text": "Row and Column Access Control Support in IBM DB2 for i"}, {"label": "text", "id": 8, "page_no": 17, "cluster": {"id": 8, "label": "text", "bbox": {"l": 26.35322380065918, "t": 240.97860717773438, "r": 127.4436, "b": 267.21185302734375, "coord_origin": "TOPLEFT"}, "confidence": 0.8400375843048096, "cells": [{"id": 29, "text": "Implement roles and ", "bbox": {"l": 26.700001, "t": 242.17200000000003, "r": 127.4436, "b": 252.85199, "coord_origin": "TOPLEFT"}}, {"id": 30, "text": "separation of duties", "bbox": {"l": 26.700001, "t": 256.15198, "r": 121.6608, "b": 266.83196999999996, "coord_origin": "TOPLEFT"}}]}, "text": "Implement roles and separation of duties"}, {"label": "text", "id": 9, "page_no": 17, "cluster": {"id": 9, "label": "text", "bbox": {"l": 26.22105598449707, "t": 283.7095947265625, "r": 120.28319999999998, "b": 322.87198, "coord_origin": "TOPLEFT"}, "confidence": 0.8828509449958801, "cells": [{"id": 31, "text": "Leverage row ", "bbox": {"l": 26.700001, "t": 284.17197, "r": 93.970795, "b": 294.85196, "coord_origin": "TOPLEFT"}}, {"id": 32, "text": "permissions on the ", "bbox": {"l": 26.700001, "t": 298.15198000000004, "r": 120.28319999999998, "b": 308.83197, "coord_origin": "TOPLEFT"}}, {"id": 33, "text": "database", "bbox": {"l": 26.700001, "t": 312.19199000000003, "r": 70.413605, "b": 322.87198, "coord_origin": "TOPLEFT"}}]}, "text": "Leverage row permissions on the database"}, {"label": "text", "id": 10, "page_no": 17, "cluster": {"id": 10, "label": "text", "bbox": {"l": 26.226221084594727, "t": 339.11865234375, "r": 121.44960000000002, "b": 378.85199, "coord_origin": "TOPLEFT"}, "confidence": 0.9064874649047852, "cells": [{"id": 34, "text": "Protect columns by ", "bbox": {"l": 26.700001, "t": 340.15198000000004, "r": 121.44960000000002, "b": 350.83197, "coord_origin": "TOPLEFT"}}, {"id": 35, "text": "defining column ", "bbox": {"l": 26.700001, "t": 354.19199000000003, "r": 106.5696, "b": 364.87198, "coord_origin": "TOPLEFT"}}, {"id": 36, "text": "masks", "bbox": {"l": 26.700001, "t": 368.1720000000001, "r": 58.194, "b": 378.85199, "coord_origin": "TOPLEFT"}}]}, "text": "Protect columns by defining column masks"}, {"label": "text", "id": 11, "page_no": 17, "cluster": {"id": 11, "label": "text", "bbox": {"l": 152.25205993652344, "t": 241.8492889404297, "r": 414.08423, "b": 323.59189, "coord_origin": "TOPLEFT"}, "confidence": 0.9789718389511108, "cells": [{"id": 37, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 ", "bbox": {"l": 152.94, "t": 242.72857999999997, "r": 413.99057, "b": 251.59295999999995, "coord_origin": "TOPLEFT"}}, {"id": 38, "text": "feature of IBM DB2 for i Row and Column Access Control (RCAC). It ", "bbox": {"l": 152.94002, "t": 254.72839, "r": 401.85635, "b": 263.59277, "coord_origin": "TOPLEFT"}}, {"id": 39, "text": "offers a broad description of the function and advantages of controlling ", "bbox": {"l": 152.94002, "t": 266.72821, "r": 414.08423, "b": 275.59259, "coord_origin": "TOPLEFT"}}, {"id": 40, "text": "access to data in a comprehensive and transparent way. This ", "bbox": {"l": 152.94002, "t": 278.72803, "r": 381.24014, "b": 287.59244, "coord_origin": "TOPLEFT"}}, {"id": 41, "text": "publication helps you understand the capabilities of RCAC and provides ", "bbox": {"l": 152.94002, "t": 290.72784, "r": 414.07031, "b": 299.59225, "coord_origin": "TOPLEFT"}}, {"id": 42, "text": "examples of defining, creating, and implementing the row permissions ", "bbox": {"l": 152.94002, "t": 302.72766, "r": 414.05447, "b": 311.59207, "coord_origin": "TOPLEFT"}}, {"id": 43, "text": "and column masks in a relational database environment.", "bbox": {"l": 152.94002, "t": 314.72747999999996, "r": 362.3291, "b": 323.59189, "coord_origin": "TOPLEFT"}}]}, "text": "This IBM Redpaper publication provides information about the IBM i 7.2 feature of IBM DB2 for i Row and Column Access Control (RCAC). It offers a broad description of the function and advantages of controlling access to data in a comprehensive and transparent way. This publication helps you understand the capabilities of RCAC and provides examples of defining, creating, and implementing the row permissions and column masks in a relational database environment."}, {"label": "text", "id": 12, "page_no": 17, "cluster": {"id": 12, "label": "text", "bbox": {"l": 152.3572540283203, "t": 330.5283203125, "r": 414.17383, "b": 388.909912109375, "coord_origin": "TOPLEFT"}, "confidence": 0.9799743890762329, "cells": [{"id": 44, "text": "This paper is intended for database engineers, data-centric application ", "bbox": {"l": 152.94002, "t": 331.70728, "r": 414.17383, "b": 340.57169, "coord_origin": "TOPLEFT"}}, {"id": 45, "text": "developers, and security officers who want to design and implement ", "bbox": {"l": 152.94002, "t": 343.70709, "r": 407.61029, "b": 352.5715, "coord_origin": "TOPLEFT"}}, {"id": 46, "text": "RCAC as a part of their data control and governance policy. A solid ", "bbox": {"l": 152.94002, "t": 355.70691, "r": 399.29565, "b": 364.57132, "coord_origin": "TOPLEFT"}}, {"id": 47, "text": "background in IBM i object level security, DB2 for i relational database ", "bbox": {"l": 152.94002, "t": 367.70673, "r": 414.0603, "b": 376.57114, "coord_origin": "TOPLEFT"}}, {"id": 48, "text": "concepts, and SQL is assumed.", "bbox": {"l": 152.94002, "t": 379.70654, "r": 268.86945, "b": 388.57095, "coord_origin": "TOPLEFT"}}]}, "text": "This paper is intended for database engineers, data-centric application developers, and security officers who want to design and implement RCAC as a part of their data control and governance policy. A solid background in IBM i object level security, DB2 for i relational database concepts, and SQL is assumed."}, {"label": "text", "id": 13, "page_no": 17, "cluster": {"id": 13, "label": "text", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}, "confidence": -1.0, "cells": [{"id": 49, "text": "Back cover", "bbox": {"l": 287.22, "t": 28.54803000000004, "r": 414.24481, "b": 50.748050000000035, "coord_origin": "TOPLEFT"}}]}, "text": "Back cover"}], "headers": [{"label": "page_footer", "id": 1, "page_no": 17, "cluster": {"id": 1, "label": "page_footer", "bbox": {"l": 170.78512573242188, "t": 630.505859375, "r": 232.11270141601562, "b": 639.66301, "coord_origin": "TOPLEFT"}, "confidence": 0.7700248956680298, "cells": [{"id": 1, "text": "REDP-5110-00", "bbox": {"l": 171.0, "t": 631.338, "r": 231.88769999999997, "b": 639.66301, "coord_origin": "TOPLEFT"}}]}, "text": "REDP-5110-00"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test.json index 24195672..229dc520 100644 --- a/tests/data_scanned/groundtruth/docling_v1/ocr_test.json +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test.json @@ -1 +1 @@ -{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test.pdf", "filename-prov": null, "document-hash": "73f23122e9edbdb0a115b448e03c8064a0ea8bdc21d02917ce220cf032454f31", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "8c5c5b766c1bdb92242142ca37260089b02380f9c57729703350f646cdf4771e", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [71.35887908935547, 690.8582153320312, 504.0870056152344, 765.0995483398438], "page": 1, "span": [0, 94], "__ref_s3_data": null}], "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "type": "paragraph", "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 841.9216918945312, "page": 1, "width": 595.201171875}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file +{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test.pdf", "filename-prov": null, "document-hash": "73f23122e9edbdb0a115b448e03c8064a0ea8bdc21d02917ce220cf032454f31", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "8c5c5b766c1bdb92242142ca37260089b02380f9c57729703350f646cdf4771e", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [70.90211486816406, 689.2166748046875, 504.87200927734375, 765.0995483398438], "page": 1, "span": [0, 94], "__ref_s3_data": null}], "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "type": "paragraph", "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 841.9216918945312, "page": 1, "width": 595.201171875}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test.pages.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test.pages.json index bc164563..b9389bb9 100644 --- a/tests/data_scanned/groundtruth/docling_v1/ocr_test.pages.json +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test.pages.json @@ -1 +1 @@ -[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "headers": []}}] \ No newline at end of file +[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "headers": []}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test.json index 6488f943..fe74306e 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test.json @@ -1 +1 @@ -{"schema_name": "DoclingDocument", "version": "1.0.0", "name": "ocr_test", "origin": {"mimetype": "application/pdf", "binary_hash": 14853448746796404529, "filename": "ocr_test.pdf", "uri": null}, "furniture": {"self_ref": "#/furniture", "parent": null, "children": [], "name": "_root_", "label": "unspecified"}, "body": {"self_ref": "#/body", "parent": null, "children": [{"cref": "#/texts/0"}], "name": "_root_", "label": "unspecified"}, "groups": [], "texts": [{"self_ref": "#/texts/0", "parent": {"cref": "#/body"}, "children": [], "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 71.35887908935547, "t": 765.0995483398438, "r": 504.0870056152344, "b": 690.8582153320312, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 94]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "pictures": [], "tables": [], "key_value_items": [], "pages": {"1": {"size": {"width": 595.201171875, "height": 841.9216918945312}, "image": null, "page_no": 1}}} \ No newline at end of file +{"schema_name": "DoclingDocument", "version": "1.0.0", "name": "ocr_test", "origin": {"mimetype": "application/pdf", "binary_hash": 14853448746796404529, "filename": "ocr_test.pdf", "uri": null}, "furniture": {"self_ref": "#/furniture", "parent": null, "children": [], "name": "_root_", "label": "unspecified"}, "body": {"self_ref": "#/body", "parent": null, "children": [{"cref": "#/texts/0"}], "name": "_root_", "label": "unspecified"}, "groups": [], "texts": [{"self_ref": "#/texts/0", "parent": {"cref": "#/body"}, "children": [], "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 70.90211486816406, "t": 765.0995483398438, "r": 504.87200927734375, "b": 689.2166748046875, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 94]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "pictures": [], "tables": [], "key_value_items": [], "pages": {"1": {"size": {"width": 595.201171875, "height": 841.9216918945312}, "image": null, "page_no": 1}}} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test.pages.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test.pages.json index bc164563..b9389bb9 100644 --- a/tests/data_scanned/groundtruth/docling_v2/ocr_test.pages.json +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test.pages.json @@ -1 +1 @@ -[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 71.35887908935547, "t": 76.82212829589844, "r": 504.0870056152344, "b": 151.06346130371094, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling", "bbox": {"l": 74.0, "t": 78.0, "r": 144.0, "b": 96.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "bundles", "bbox": {"l": 150.66666666666666, "t": 78.0, "r": 224.66666666666666, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "PDF", "bbox": {"l": 232.0, "t": 78.0, "r": 269.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 3, "text": "document", "bbox": {"l": 275.0, "t": 78.0, "r": 371.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 4, "text": "conversion", "bbox": {"l": 377.3333333333333, "t": 78.0, "r": 479.0, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 5, "text": "to", "bbox": {"l": 485.3333333333333, "t": 79.66666666666663, "r": 503.3333333333333, "b": 92.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 6, "text": "JSON", "bbox": {"l": 72.33333333333333, "t": 104.66666666666663, "r": 121.33333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 7, "text": "and", "bbox": {"l": 129.0, "t": 105.0, "r": 162.33333333333334, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 8, "text": "Markdown", "bbox": {"l": 170.33333333333334, "t": 105.0, "r": 265.6666666666667, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 9, "text": "in", "bbox": {"l": 273.3333333333333, "t": 105.0, "r": 287.6666666666667, "b": 119.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 10, "text": "an", "bbox": {"l": 294.6666666666667, "t": 108.66666666666663, "r": 316.0, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 11, "text": "easy", "bbox": {"l": 323.0, "t": 108.66666666666663, "r": 365.6666666666667, "b": 123.33333333333337, "coord_origin": "TOPLEFT"}}, {"id": 12, "text": "self", "bbox": {"l": 371.0, "t": 105.0, "r": 404.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 13, "text": "contained", "bbox": {"l": 410.3333333333333, "t": 105.0, "r": 503.3333333333333, "b": 119.66666666666663, "coord_origin": "TOPLEFT"}}, {"id": 14, "text": "package", "bbox": {"l": 73.66666666666667, "t": 131.66666666666663, "r": 150.66666666666666, "b": 150.33333333333337, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "headers": []}}] \ No newline at end of file +[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 70.90211866351085, "t": 76.82212829589844, "r": 504.8720079864275, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 73.34702132031646, "t": 76.99999977896755, "r": 503.64955224479564, "b": 97.99999977896755, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 70.90211866351085, "t": 102.66666671251767, "r": 504.8720079864275, "b": 124.83139551297336, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 73.10852522817731, "t": 130.0013615789096, "r": 153.04479435252625, "b": 152.70503335218427, "coord_origin": "TOPLEFT"}}]}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "headers": []}}] \ No newline at end of file