fix(mongodb): support restricted database users

This commit is contained in:
t8y2 committed 2026-06-02 11:09:48 +08:00
1 parent b5f868959b
commit 81e1693c18
6 files changed
+101 -17

No files matched your search

@@ -15,6 +15,14 @@ export function setMongoUrlParam(urlParams: string | undefined, key: string, val
}
export function mongodbAuthFailureHint(message: string): string {
if (message.includes("must be URL encoded") || message.includes("cannot contain unescaped %")) {
return `${message}\n\nMongoDB URL mode requires reserved characters in usernames and passwords to be percent-encoded. For example, @ becomes %40, # becomes %23, / becomes %2F, : becomes %3A, and % becomes %25.`;
}
if (message.includes("not authorized") && message.includes("listDatabases")) {
return `${message}\n\nThis MongoDB user can authenticate but does not have permission to run listDatabases on admin. Grant listDatabases/cluster monitor privileges, or set a specific default database that the user can access.`;
}
if (message.includes("Current authentication database:")) return message;
const source = message.match(/source='([^']+)'/)?.[1];