Příručka:Údržbářské skripty/Konfigurace
Údržbářské skripty, které se potřebují podívat na databázové schéma MediaWiki (jako např. Manuál:Update.php ), využívají pro přístup uživatele nastaveného v konfiguračních proměnných $wgDBadminuser
a $wgDBadminpassword
. Uživatel uvedený v Příručka:$wgDBuser totiž nemusí mít veškerá potřebná práva.
Bez nastavení těchto proměnných se lze obejít, pokud se při spuštění skriptu předají parametry --dbuser a --dbpass.
Jejich použití se může lišit podle toho, s jakou databázovou aplikací vaše MediaWiki pracuje.
Pokud při spouštění skriptu nic z toho není nastaveno, použije se skript uživatele z konfigurační proměnné Příručka:$wgDBuser .
MySQL
Některé údržbářské skripty vyžadují pro práci s databází vyšší úroveň práv, než má hlavní databázový účet, se kterým pracuje MediaWiki. U webové aplikace taková úroveň práv vždy představuje bezpečnostní riziko.
Pro přístup k databázi MediaWiki, byste měli mít kromě výchozího účtu vytvořen ještě jeden samostatný účet s právy 'superuživatele' (pokud již neexistuje).
Pokud se databáze, kterou používáte pro MediaWiki, jmenuje wikidb
, pak následující SQL vytvoří takového uživatele, který může uplatňovat práva superuživatele na localhost.:
GRANT ALL PRIVILEGES ON wikidb.* TO 'wikidbadmin'@'localhost' IDENTIFIED BY 'strong-password';
Jakmile budete mít založený účet s těmito právy, můžete ho nastavit do konfigurační proměnné $wgDBadminuser
.
Proměnná $wgDBadminuser
se nastavuje, tak jako jiné konfigurační proměnné, v konfiguračním souboru LocalSettings.php .
Kromě proměnné $wgDBadminuser
musíte pochopitelně napsat do proměnné $wgDBadminpassword
také odpovídající heslo.
PostgreSQL
PostgreSQL používá jiný model zabezpečení přístupu k databázi než MySQL, takže je nutné pro údržbářské skripty MediaWiki použít stejný účet, který využívá PostgreSQL server pro své rutinní operace.
Proto je nutné, aby se v tomto případě údržbářské skripty spouštěly pod účtem vlastníka databáze, aby se nové tabulky založily správně.
Nastavení proměnných $wgDBadminuser
a $wgDBadminpassword
tedy není nutné.