[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