MySQL permissions and groups?
In Sourcemod you can store user permissions in MySQL so multiple servers can share the same permissions.

However I cannot find such an option for umod. Does it exist? Is it in a plugin?

If not, is it possible to make one with these functions? https://umod.org/documentation/api/player#permissions

GrantPermission
AddToGroup

Is there a way to flush all permissions in case the server crashes?
Oxide has an extension for MySQL that plugins can utilize, but there is no native option for anything other than the current Protobuf storage.

uMod will have options for switching between storage formats and mediums.
How far away is the umod rewrite?

Would it be possible to just store the permissions in mysql? And then do player.RevokePermission("*") and player.RemoveFromGroup("*"), fetch the permissions and groups of the player through mysql and manually add them 1 by 1 upon connect with GrantPermission and AddToGroup?
You'd basically have the write your own setup in a plugin that mirrors the Protobuf, else a custom build.

uMod builds aren't quite ready for use yet.
I think I am going to store the permissions as tables in mysql, not in protobuf format.

Then when someone triggers the connect hook, I do player.RevokePermission("*") and player.RemoveFromGroup("*"), and then fetch the list of groups and permissions through the network and then I add them 1 by 1 to the player.

Unless the umod build is coming out in a few days, I think I will probably have to go with this option.