Reverse lookup ID by value
Why not use a set? For a set in is O(1). You can extend the set by adding another acc with db['users']['1']['accs'].add('misty') (add instead of append). After this change your lookup is only O(n), where n is the number of users (at worst) and in reality will depend on where the user is in the internal representation of the dict.

Alternatively you could just use a tuple (which is hashable). This just makes it different to add another account to a user:

db['users']['1']['accs'] += ("misty",)


This way you could build the reverse dictionary, speeding the lookup up to O(1). However, you would have to keep the reversed and actual db in sync.

In addition, to iterate over the keys of a dict, it is sufficient to do:

for key in db['users']:


But here I  would actually do:

for key, user in db['users'].items():
    if name in user['accs']:
        return key


You don't need the explicit return None because None is already the default return value of a function in python.

Your function get(name, key) is confusing, because name is actually id (so "1", "2", ...).

Python has an official style guide, PEP8. One of the things it recommend is using lower_case for variable and function names.