Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
FREEDOM251

Freedom251 › Blog › Database administration

How to Fix Odoo Database Access Problems on a Self-Hosted Server

By Freedom251 Team · · 10 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Odoo database access failures on a self-hosted server usually come from one of three places: the database manager is protected by an unknown or incorrect master password, the login page is filtering the wrong databases, or PostgreSQL refuses the Odoo role’s request to create a database. Fix them in that order: verify admin_passwd and restart Odoo, correct the exact dbfilter option and hostname match, then grant the Odoo PostgreSQL role the CREATEDB privilege. After one database is reliably selected for each hostname, disable database listing with list_db = False.

The option names and behavior below follow Odoo 19.0 documentation and corroborating community guidance. Check the configuration reference for your installed Odoo release before applying a setting, because package layouts and service names vary between distributions.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Identify which Odoo database problem you have

Start with the visible symptom rather than changing several settings at once. The three failure families have different owners and different fixes.

Symptom Likely control First check
Create, delete, dump or restore in the database manager is blocked, or Odoo rejects the master password Odoo’s admin_passwd in the configuration file Confirm the value is present, non-default and loaded by the service that is running Odoo
The login page lists every database, the wrong database, or no database dbfilter, db_name, hostname handling and proxy settings Check the spelling and test the regular expression against the exact hostname Odoo receives
“permission denied to create database” appears PostgreSQL role attributes Inspect the Odoo role with du and verify that it has CREATEDB

Record the Odoo version, the configuration file used by the running service, the public hostname, and the PostgreSQL role name before editing anything. A common cause of wasted troubleshooting is changing one configuration file while the service starts with another.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Prepare safely before changing configuration

Confirm the active Odoo service and configuration

Use the service manager or container definition used by your installation to determine which Odoo process is serving requests. Open the configuration file passed to that process, not merely a similarly named sample file. If Odoo runs in a container, make the change in the mounted configuration or deployment definition so a restart does not discard it.

Keep a copy of the current configuration and note the existing values for admin_passwd, db_name, dbfilter, list_db and proxy_mode. Edit only the setting related to the symptom, then restart Odoo and review its startup log for configuration or database errors.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Protect the data and the credentials

  • Do not experiment with delete, restore or dump actions on the production database until you have a verified backup and a tested restore path.
  • Choose a long, randomly generated value for admin_passwd. It is a control password for database-manager operations, not the password of an Odoo user.
  • Give the PostgreSQL role only the capabilities Odoo needs. The documented role-creation command enables database creation while explicitly disabling superuser and role-creation privileges.

Fix database-manager access with admin_passwd

Odoo gates database-manager operations—including create, delete, dump and restore—behind a master password. That password is read from admin_passwd in the Odoo configuration file and is checked before an alteration is allowed. It is not changed from the normal user profile screen.

Set or replace the master password

  1. Stop or otherwise quiesce the Odoo service according to your deployment method so the edit cannot race with a restart.
  2. Open the active Odoo configuration file and locate the [options] section.
  3. Set a non-default value, for example:
    [options]
    admin_passwd = 7f4c1b9e6d2a8c0f3e5b1a7d9c6f2e8b
  4. Save the file with permissions that allow the Odoo service account to read it but do not expose the secret to ordinary users.
  5. Restart Odoo using the same service, container, or supervisor command that normally launches it.
  6. Open the database manager again and enter the new value. If the old value is still accepted or rejected, verify that the process actually loaded the edited file rather than another configuration supplied on its command line.

The documentation recommends a randomly generated password because anyone who can reach the database manager and obtain that secret could attempt destructive database operations. Do not reuse an ordinary Odoo user password.

Recover when the master password is forgotten

The documented community recovery route is administrative: edit admin_passwd directly in the configuration file, save a new value, and restart Odoo. There is no requirement to know the previous value if you have operating-system access to the server and permission to change the service configuration.

  1. Locate the configuration file used by the running Odoo instance.
  2. Replace the existing admin_passwd value with a newly generated random value.
  3. Restart Odoo completely; a browser refresh alone cannot load the new setting.
  4. Test one harmless database-manager action, such as opening the manager and authenticating, before attempting create, delete, dump or restore.

If the new password fails immediately after the restart, check for duplicate configuration files, environment variables or a second Odoo process listening on the same host. Also check the service log for a syntax error that caused Odoo to fall back to a different launch configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Hide the database manager after the server is correctly routed

To remove database-manager listing and alteration screens from normal access, set:

list_db = False

Odoo 19.0 documentation also gives the command-line equivalent --no-database-list. Disabling the list is safe only after db_name and dbfilter are configured so each hostname resolves to the intended database. Otherwise, users can reach a login page with no selectable database and no practical way to choose the right one.

Keep a secure administrative procedure for the rare cases when you need to create, restore or remove a database. Hiding the list does not replace a strong admin_passwd; it removes the normal listing interface, while the master password still protects database-manager operations when that interface is enabled.

Fix the login page with dbfilter, db_name and hostname checks

dbfilter is a regular expression that restricts which PostgreSQL databases Odoo exposes for a request, based on the hostname. The option is spelled dbfilter, with no underscore. A setting named db_filter is ignored, which can leave every database visible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Correct the option name and basic syntax

In the active configuration file, use the exact option name:

[options]
dbfilter = ^%d$

The commonly documented pattern ^%d$ matches the first subdomain after www. It is useful when database names follow the tenant or subdomain convention, but it is not a universal match. For example, if the incoming host is acme.example.com, the pattern expects the relevant subdomain-derived database name to be acme. A database named acme_production will not match that exact pattern without a different expression.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Anchor the expression deliberately. The ^ and $ characters mean the complete candidate name must match, preventing accidental partial matches. If your naming scheme does not map cleanly to hostnames, use an explicit expression that reflects the real database names, or set db_name for a single-database deployment.

Make db_name and the filter agree

For a server that should serve one database, set the database name explicitly and make sure the filter or hostname rule selects that same database. For example:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
[options]
db_name = acme_production
dbfilter = ^acme_production$

The exact database name above is an example; use the name returned by PostgreSQL on your server. If db_name points to a database that does not exist, or if the regular expression excludes it, Odoo can present an empty or unusable login choice even though PostgreSQL is healthy.

Test the expression against the hostname Odoo actually receives

Do not test only the browser’s address. A reverse proxy may terminate TLS, rewrite the host or forward a different value. Compare the proxy’s forwarded host with the hostname your regular expression expects. Test each public name, including whether it includes www, an environment prefix, a port or a tenant subdomain.

For every hostname, write down the expected database and check these conditions:

  • The hostname reaches the intended Odoo instance.
  • The database name matches the expression exactly, including hyphens, underscores and letter case.
  • The database exists and the Odoo PostgreSQL role can connect to it.
  • No second database also matches the expression when only one should be exposed.

Enable proxy mode when a reverse proxy is in front

When Odoo sits behind a reverse proxy, set:

proxy_mode = True

Restart Odoo after changing it. Proxy mode lets Odoo use the forwarded request information expected in a proxied deployment. It does not repair a typo in dbfilter; the regular expression still has to match the hostname delivered through the proxy chain.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Why the page still lists every database

Check these common causes in order:

  1. The option is spelled db_filter instead of dbfilter.
  2. The service loaded a different configuration file than the one you edited.
  3. The expression is too broad, lacks anchors, or matches more database names than intended.
  4. The reverse proxy passes a host different from the one used when writing the expression.
  5. Odoo was not restarted after the configuration change.
  6. list_db is still enabled and the filter does not narrow the result to the intended database.

Change one item at a time and retest in a private browser window so an old session or cached redirect does not disguise the result.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Fix PostgreSQL “permission denied to create database”

Odoo creates databases through its PostgreSQL role. The role therefore needs the PostgreSQL CREATEDB attribute. Without it, Odoo can connect to PostgreSQL yet fail when the database manager requests a new database.

Inspect the current role

Connect with an administrative PostgreSQL account and run:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
du

Find the role used by Odoo and inspect its attributes. You are looking for Create DB or CREATEDB. Also verify that the role has login capability and that Odoo’s configured password corresponds to that role.

Grant CREATEDB directly

Run the following SQL as the PostgreSQL administrator or another role allowed to alter roles:

ALTER USER odoo WITH CREATEDB;

The command changes the role named odoo; substitute the actual Odoo role name if your installation uses another name. The change takes effect at the PostgreSQL role level. Restarting Odoo is generally unnecessary for the privilege change itself, although restarting can be useful if you are also changing Odoo’s connection settings.

PostgreSQL’s role documentation treats CREATEDB as a role attribute. It is not safely assumed through membership in another role, so grant it directly to the role Odoo uses. Verify again with du after the change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create a correctly scoped role during installation

ArchWiki’s example creates a login role that can create databases without granting superuser or role-creation powers:

createuser odoo --createdb --login --no-superuser --no-createrole --pwprompt

Enter a strong password when prompted, then use the same role name and password in Odoo’s PostgreSQL connection settings. This is preferable to making the role a superuser solely to get database creation working.

Why superuser is usually not the first fix

Older Odoo documentation described the PostgreSQL role as a superuser, but community installation reports show Odoo working with the database-creation permission alone. Grant superuser only if a specific, documented operation in your release demonstrably requires it and you have assessed the security impact. For the reported create-database error, direct CREATEDB is the focused correction.

Check for errors that look like a permission problem

  • If du shows CREATEDB but the error remains, confirm Odoo is connecting as the role you inspected rather than a similarly named role.
  • Check that the PostgreSQL server receiving the connection is the one you changed; containers and remote database hosts can make multiple PostgreSQL instances appear identical.
  • Review PostgreSQL and Odoo logs for authentication failures, connection limits or a failed transaction before assuming the role attribute was ignored.
  • Ensure the role name in the Odoo configuration has no trailing spaces or quoting mistake.

Recommended troubleshooting sequence

Use this order to avoid masking one problem with another:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Secure and verify the master password. Confirm admin_passwd is a non-default value in the active configuration and restart Odoo.
  2. Correct database selection. Spell dbfilter exactly, test its regular expression against the hostname Odoo receives, and align it with db_name.
  3. Verify PostgreSQL privileges. Run du and grant CREATEDB directly to the Odoo role if it is missing.
  4. Retest through the real entry point. Use the public hostname and reverse proxy, not only a direct backend URL.
  5. Disable listing once routing works. Set list_db = False or start Odoo with --no-database-list after confirming that each hostname selects exactly one intended database.

Failure branches and recovery decisions

The manager opens but every action says the password is wrong

Replace admin_passwd in the active file, restart Odoo and verify which process owns the listening port. If multiple Odoo instances exist, stop the unintended one or edit the configuration used by the process receiving the request.

The login page is empty after setting list_db = False

Re-enable listing temporarily or start without --no-database-list, then confirm that db_name names an existing database and that dbfilter matches it for the public hostname. Restore list_db = False only after a direct login succeeds.

A tenant sees another tenant’s database

Tighten the regular expression with anchors, check the exact host forwarded by the proxy, and ensure database names do not share an unintended pattern. Do not hide the symptom by merely turning off listing; access control must select the correct database before disabling the manager.

Database creation still fails after granting CREATEDB

Confirm the grant was applied to the exact login role Odoo uses, on the correct PostgreSQL instance. Then inspect logs for authentication, connection or storage errors. A successful role grant cannot fix a wrong password, a different database server, or a full or unavailable PostgreSQL instance.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operational checklist for a self-hosted Odoo server

  • Store the random admin_passwd in your password manager and restrict read access to the Odoo configuration.
  • Document the mapping from each public hostname to its database name and regular-expression rule.
  • Keep proxy_mode = True consistent with the actual reverse-proxy architecture.
  • Use a dedicated PostgreSQL login role with CREATEDB but without superuser or role-creation privileges unless a proven requirement exists.
  • After upgrades, recheck option names and defaults against the Odoo release documentation, especially if a package replaces the configuration file.
  • Test a backup restore separately from the database manager so a password or filtering fix is not mistaken for a verified recovery plan.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Database administrationLinuxOdooPostgreSQLSelf-hosted servers

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.