That sounds serious. I'm going to continue assuming it really is a permission issue (since it worked before running as admin and I don't have a better explanation for the symptoms).
Can the REAPER process even write into the resource folder at all? Test by tweaking a REAPER setting and checking if it remembered the change on the next startup.
I get the same error as you if I deny write access to non-admin in that directory's properties (I'll look later if I can obtain a more detailed error message from sqlite – "unable to open database file" is quite vague).
If all fails, try in a new portable installation and compare with the broken one. Unfortunately I'm not familiar enough with Windows to help much further than that (maybe someone else can)...
EDIT: Try this script:
Code:
path = reaper.GetResourcePath() .. "\\test"
file, error = io.open(path, 'w')
if file then
reaper.ShowConsoleMsg(string.format("successfully created %s\n", path))
else
reaper.ShowConsoleMsg(string.format("failure: %s\n", error))
end