Prohibit non admin writes to system spaces
In vanilla tarantool there is a behavior that when you manipulate with system provided entities you not only need to have a permission for specific manipulation you need (create, alter), but also permission to modify underlying system space. I e to create a user you need to have create
privilege on user
, write
on system space _user
and _write
on system space _priv
. And if you have write permission on _priv
you can grant yourself whatever you want. This ruins flexibility of the model, clearly no-one but admin needs to be able to write to _priv
.
Another point is that GRANT WRITE TABLE TO U1
grants permissions to change all tables in the system including system ones. In order to grant privileges on all user tables you have to give permissions for each one individually. Usually in other systems such permissions are granted on database/schema which doesnt affect system tables.
Source of this problem is that tarantool has only one database - universe. Usually in other dbms's system tables belong to different schema/database so permissions do not intersect in any way.
As I remember from our discussion with @rosik and @\kostja solution was to restrict writes to system tables to admin.
Ref: #394