Hostgator a pohled (view) v MySQL

Hostgator.com je nejlepší multihosting (webhostig pro neomezený počet hostovaných domén), který jsem měl tu čest vyzkoušet. Používám jej od zimy 2007 a kromě pár drobností jsem nemusel řešit žádné problémy. Celkem provozuji na jednom účtu kolem 50 domén, 30 databází; weby zabírají přibližně 4300 MB diskového prostoru, což představuje asi 90 000 souborů a docela slušný měsíční traffic (přenos dat).

Ale k věci. Kvůli omezení, či chybě v MySQL databázi, která neumí pracovat s indexy v poddotazech (subqueries), jsem ve své aplikaci nucen používat pohledy (views), kteréžto indexy zvládají bez potíží. Čili jsem do aplikace přidal jeden řádek kódu, který vytvoří v databázi pohled a dotaz bude prováděn na tento pohled a ne přímo do tabulky:
CREATE OR
REPLACE VIEW source AS
SELECT *
FROM table

Při testu však web zahlásil chybu:

CREATE VIEW command denied to user ‘user’@'localhost’ for table ‘source’

což řečí MySQL znamená to, že uživatel user nemá práva k vytvoření pohledu. Uživatele user jsem vytvářel v cPanelu a přiřadil jsem mu veškerá práva pro danou databázi. Právo CREATE VIEW však v cPanelu není. Jak tedy dál?

Zkusil jsem stejný VIEW vytvořit přes PHPMyAdmin. Tam se vytvořil bez problémů. Aplikace z vytvořeného pohledu může číst, takže spokojenost.

Chyba se stala následovně: pro každou databázi vytvářím speciálního uživatele. Tomu však nejdou nastavit práva na vyváření pohledů (views). Tohle právo má ale od začátku „superuživatel“, čili uživatel, s kterým přistupujete do cPanelu. Prosté řešení, ale možná trochu nebezpečné.

Leave a Reply