Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon 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×
Skip to content
VGSources
Blog

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

A practical, release-aware guide to repairing Odoo database access: reset the master password, correct dbfilter and proxy handling, grant PostgreSQL CREATEDB, and safely disable database listing.
Length11 min Posted Quest giverVGSources Team

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.

Most Odoo database-access failures on a self-hosted server come from one of three layers: the database manager is protected by an unknown or unsafe master password, the login page is filtering databases incorrectly, or PostgreSQL has not granted Odoo the CREATEDB privilege. Fix them in that order, restarting Odoo after configuration changes and checking the exact hostname seen by Odoo.

This guide covers Odoo 19.0 option names and the PostgreSQL role permissions used by current self-hosted deployments. Menu labels and service names can differ in older releases or distributions, so verify option names against the release you run.

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 access problem you have

Do not change all of Odoo’s database settings at once. First match the symptom to the layer that controls it. The database manager, database filtering, and PostgreSQL permissions are separate controls.

Symptom Most likely control First check Typical correction
Create, delete, dump, or restore in the database manager is refused admin_passwd in the Odoo configuration Confirm that a non-default master password is present and that Odoo was restarted after it changed Set or replace admin_passwd, restart Odoo, and use that value in the manager
You forgot the Odoo database-manager password admin_passwd, not the PostgreSQL password Open the configuration file used by the running service Replace the value in the configuration file and restart Odoo
The login page lists every database dbfilter, hostname matching, or proxy handling Check the spelling and the hostname passed to Odoo Correct the regular expression and enable proxy handling when Odoo is behind a reverse proxy
The login page lists no database A filter that matches nothing, or a database name/hostname mismatch Test the filter against the exact host and database name Correct the expression, then reload the login page
Odoo reports “permission denied to create database” PostgreSQL role lacks CREATEDB Inspect the role with du Grant CREATEDB directly to the Odoo role

Use a safe troubleshooting order

Run these checks from the top. This order prevents a database-filter problem from being mistaken for a PostgreSQL failure and avoids hiding the manager before the intended database is reachable.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
  1. Open the Odoo configuration file used by the running service and confirm that admin_passwd is set to a value you control and is not a default or empty value.
  2. Restart Odoo so it reads the changed configuration.
  3. Check that the option is spelled dbfilter, with no underscore, and that its regular expression matches the hostname reaching Odoo.
  4. If Odoo is behind a reverse proxy, confirm that the proxy forwards the hostname you used when designing the expression and set proxy_mode = True.
  5. Check the PostgreSQL role with psql and du. The role used by Odoo needs the CREATEDB attribute.
  6. Only after one database is served correctly, set list_db = False to hide the database manager and database list from normal requests.

Fix database-manager access with admin_passwd

Odoo’s database manager handles create, delete, dump, and restore operations. These operations are gated by a master password called admin_passwd. It is read from the Odoo configuration file; it is not the password of a PostgreSQL user and it is not an individual user’s Odoo login password.

Find the configuration that the service actually uses

Make the edit in the configuration file referenced by your service definition or startup command. Package installations commonly use an odoo.conf file under /etc, while container or custom deployments may mount a different path. Editing a similarly named file that the running process never reads will have no effect.

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

Check the file as the operating-system administrator, and protect it because anyone who can read it can obtain the master password. The relevant section normally looks like this:

[options]
admin_passwd = replace-with-a-long-random-value

Set a new master password

  1. Stop or pause administrative access to Odoo if you are changing the value on a production server.
  2. Generate a long, unique random value. Do not reuse a PostgreSQL password, an Odoo user password, or a value from an example configuration.
  3. Set that value after admin_passwd = in the active configuration file. Keep the option name exactly as shown.
  4. Save the file with permissions that prevent ordinary users from reading it.
  5. Restart the Odoo service. A typical systemd installation uses a command such as sudo systemctl restart odoo, but the unit name on your server may differ. Confirm the service reports a successful start before testing.
  6. Open the database manager and enter the new master password for the requested operation.

Odoo 19.0 documentation recommends a randomly generated value so a third party cannot use the manager to alter databases. A password that merely differs from the default is better than leaving the setting unchanged, but a long random value is the safer configuration.

Recover from a forgotten master password

There is no separate “reset by email” path for this self-hosted control. The practical recovery route is to edit admin_passwd in the configuration file and restart Odoo.

  1. Identify the configuration file used by the running Odoo process.
  2. Replace the old value with a new random value, even if you do not know the old one.
  3. Restart Odoo so the new value is loaded.
  4. Retry the database-manager action with the replacement value.

If the new password is rejected, verify that you edited the active file, that the line is inside the [options] section, and that the service restart completed without a configuration error. Also check for an environment variable, command-line option, or container volume that overrides the file in your deployment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

What the master password does not fix

admin_passwd authorizes the manager’s administrative actions. It does not grant PostgreSQL privileges, repair a database filter, or change the password of an Odoo application user. If the manager accepts the master password but creation fails with a PostgreSQL permission error, continue to the role-permission section below.

Control which databases appear on the login page

The dbfilter option is a regular expression that restricts databases visible to a request. It is evaluated using the hostname, which means a filter can work on a direct connection and fail after a reverse proxy changes the host information.

Use the correct option name

The option is dbfilter, not db_filter. A configuration using the underscored spelling is ignored, leaving the login page able to list databases that you expected to hide. Remove the incorrect key and add the exact supported name in the active configuration file:

[options]
dbfilter = ^%d$

The Odoo 19.0 documentation describes ^%d$ as a common pattern. In that pattern, %d represents the first subdomain after www. For example, a request for a host such as arcade.example.com can be matched to a database named arcade, provided the rest of the deployment uses that naming convention. The anchors make the entire value match rather than a substring.

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

When every database is listed

Check these items in sequence:

  • Confirm the key is spelled dbfilter and appears in the configuration file actually loaded by Odoo.
  • Check for a second configuration source that overrides it, such as a command-line argument or container environment setting.
  • Compare the expression with the exact hostname that reaches Odoo. A pattern designed for a subdomain will not match an IP address, an internal container name, or a different public alias.
  • Restart Odoo after changing the value, then open a new private-browser window to avoid an old session or cached page.

When no database is listed

An over-specific regular expression can match nothing. Temporarily test with a pattern that you know matches the intended database naming scheme, then tighten it once the mapping works. The database name and hostname must follow the same convention; a database called arcade_prod will not match a pattern expecting the exact value arcade.

Do not solve an empty list by granting broad PostgreSQL privileges. Filtering controls what Odoo presents; PostgreSQL permissions control what the Odoo role can do after a connection is selected.

Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

Reverse-proxy deployments

When Nginx, Apache, a load balancer, or another proxy sits in front of Odoo, verify the host value the proxy forwards. The regular expression must match that value, not necessarily the browser’s original address. Odoo’s deployment guidance uses proxy_mode = True when Odoo is behind a reverse proxy so forwarded request information is handled correctly:

[options]
proxy_mode = True

Enable this only when Odoo is genuinely behind a trusted proxy, and configure that proxy to pass the correct host. After changing it, restart Odoo and test the public hostname again. If the filter still behaves unexpectedly, inspect the proxy’s forwarded-host setting and compare it with the hostname assumed by your dbfilter expression.

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

Hide the database manager with list_db = False

The database manager is useful during installation and controlled administration, but leaving database listing enabled exposes an unnecessary entry point. Once the intended database is selected reliably through db_name and dbfilter, you can disable listing:

[options]
db_name = arcade
 dbfilter = ^%d$
list_db = False

Remove the accidental leading space before dbfilter when you copy this example; configuration keys must be formatted correctly. Set db_name to the database you intend to serve, and make sure the filter and hostname resolve to that same database before hiding the manager.

The command-line equivalent documented for Odoo 19.0 is --no-database-list. Use either the configuration option or the equivalent startup argument according to how your service is launched, not both unless you deliberately maintain them together.

Do this only after a successful single-database test

  1. Log in through the normal public hostname and confirm that the expected database opens.
  2. Confirm that a second, unintended database is not selected by the same hostname.
  3. Set list_db = False or add --no-database-list.
  4. Restart Odoo.
  5. Test the public login URL and an administrator workflow that does not require the manager.

If you hide the list too early and the filter is wrong, users may see no selectable database and administrators may lose the easy manager route. You can restore access by changing the setting back and restarting Odoo from the server console.

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Fix “permission denied to create database” in PostgreSQL

Odoo creates databases through its PostgreSQL role. PostgreSQL refuses that operation when the role lacks the CREATEDB attribute, even if the master password is correct and the manager is visible.

Check the role attributes

Connect with a PostgreSQL administrator and inspect the roles:

sudo -u postgres psql
du

Find the role named in Odoo’s db_user setting, often a role named odoo. Its attributes should include Create DB. Check the exact role rather than assuming the operating-system account and PostgreSQL role have the same name.

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.

Grant CREATEDB directly

Run the following SQL as the PostgreSQL administrator, commonly by becoming the postgres operating-system user:

ALTER USER odoo WITH CREATEDB;

Replace odoo with the actual PostgreSQL role used by your Odoo configuration. Exit psql, restart Odoo if your deployment caches connection or configuration state, and retry database creation from the manager.

PostgreSQL’s role documentation specifies CREATEDB as the attribute that permits database creation. That attribute is not inherited through ordinary role membership, so grant it directly to the role Odoo uses rather than only to a group role.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

Create a least-privilege role during installation

The ArchWiki installation command creates a login role with database-creation permission without granting superuser or role-creation privileges:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
createuser odoo --createdb --login --no-superuser --no-createrole --pwprompt

Use this pattern when creating a new role, substituting your chosen role name. Enter a strong password when prompted and put the same value in Odoo’s database connection settings. Existing installations usually need only the ALTER USER ... WITH CREATEDB change.

Why superuser is usually the wrong fix

Older Odoo instructions described the database role as a superuser, but community installation reports show Odoo working with only database-creation permission. A PostgreSQL superuser can bypass every database boundary, so it expands the impact of a compromised Odoo process. Grant CREATEDB directly and add broader privileges only when a specific, documented operation demonstrably requires them.

Separate the three passwords and identities

These credentials are easy to confuse:

  • Odoo master password: the admin_passwd value in the Odoo configuration, used for database-manager actions.
  • PostgreSQL role password: the password configured for the role in Odoo’s database connection settings, used to connect to PostgreSQL.
  • Odoo user password: the password for an account inside a particular Odoo database, used on the normal application login page.

Changing one does not change the others. A forgotten master password requires a configuration edit; a PostgreSQL authentication failure requires correcting the role credentials or PostgreSQL authentication rules; a forgotten application password must be reset within Odoo’s user-management flow.

Diagnostic branches for common failures

The configuration change had no effect

  • Verify the process command line or service unit to identify the active configuration file.
  • Check that the file is mounted into the container if Odoo runs in a container.
  • Confirm the service restart succeeded and that Odoo did not fall back to an older configuration after a syntax error.
  • Search for duplicate keys or command-line options that override the file value.

The filter works directly but fails through the public URL

  • Compare the direct hostname with the public hostname and the host forwarded by the proxy.
  • Enable proxy_mode = True for a trusted reverse-proxy deployment.
  • Change the expression to match the exact host-to-database naming scheme rather than an assumed browser URL.
  • Restart Odoo and test in a fresh session.

The manager opens but creation still fails

  • Check the role named by Odoo’s database configuration, not a similarly named operating-system account.
  • Run du and confirm that role has Create DB.
  • Grant CREATEDB directly with ALTER USER role_name WITH CREATEDB;.
  • Retry only after confirming that Odoo can authenticate to PostgreSQL with the configured role password.

The login page is empty after hiding the list

Restore list_db = True temporarily, or remove --no-database-list, restart Odoo, and correct db_name and dbfilter. Once the intended database is reachable through its hostname, disable listing again.

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

Production checklist

  • admin_passwd is a long random value and is stored in the active configuration file.
  • The configuration file is readable only by the administrators or service account that needs it.
  • Odoo has been restarted after every configuration change.
  • dbfilter is spelled correctly and matches the hostname passed to Odoo.
  • proxy_mode = True is enabled when a trusted reverse proxy is in use.
  • The PostgreSQL role used by Odoo has direct CREATEDB permission.
  • The role is not a superuser unless a specific operation requires it and you have accepted that risk.
  • db_name and the filter identify one intended database per hostname.
  • list_db = False is enabled only after the single-database login path has been tested.

What to verify against your Odoo release

The option names and behavior described here follow Odoo 19.0 deployment documentation, while the PostgreSQL role syntax follows PostgreSQL 18 documentation. Older Odoo releases and distribution packages can use different service names, configuration paths, or defaults. Before applying a change to a production server, confirm the corresponding deployment and configuration reference for your installed release, then test the restart and login path from the server console and the public hostname.

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.

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.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

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.