[PATCH v2 0/4] Check read access while executing SQL query

Kirill Yukhin kyukhin at tarantool.org
Thu Oct 25 11:17:08 MSK 2018


Since SQL front-end is not using box API,
no checkes for read access are performed by VDBE engine.
Fix this by introducing dedicated opcode which is executed
to perform read access check.
Note, that there's is no need to perform DML/DDL checkes as
they're performed by Tarantool's core.

Closes #2362
---
https://github.com/tarantool/tarantool/commits/kyukhin/gh-2362-sql-read-access-check
https://github.com/tarantool/tarantool/issues/2362
https://travis-ci.org/tarantool/tarantool/builds/445664874

Changes against v1:
  - Split addition of space_name->space_ptr mapping into 3 patches:
    a. Refactor cache replace/delete machinery.
    b. Introduce space_by_name() API.
    c. Use new API throughout SQL front-end.
  - Change argument order for space_cache_replace().
  - Move assert() into space_cache_replace(), make it return void.

Kirill Yukhin (4):
  schema: refactor space_cache API
  schema: add space names cache
  sql: use space_by_name in SQL
  sql: check read access while executing SQL query

 src/box/alter.cc                               |  26 +++---
 src/box/schema.cc                              | 108 ++++++++++++++++++------
 src/box/schema.h                               |  17 ++--
 src/box/sql/alter.c                            |  11 ++-
 src/box/sql/analyze.c                          |  44 ++++------
 src/box/sql/build.c                            |  57 +++++--------
 src/box/sql/delete.c                           |  26 +++---
 src/box/sql/insert.c                           |   7 +-
 src/box/sql/pragma.c                           |  32 +++----
 src/box/sql/vdbe.c                             |   5 ++
 test/box/stat.result                           |   6 +-
 test/sql/gh-2362-select-access-rights.result   | 110 +++++++++++++++++++++++++
 test/sql/gh-2362-select-access-rights.test.lua |  42 ++++++++++
 13 files changed, 326 insertions(+), 165 deletions(-)
 create mode 100644 test/sql/gh-2362-select-access-rights.result
 create mode 100644 test/sql/gh-2362-select-access-rights.test.lua

-- 
2.11.0




More information about the Tarantool-patches mailing list