DROP USER hiba

DROP USER hiba
2009-02-20T13:20:24+01:00
2009-02-20T13:40:28+01:00
2022-11-12T17:15:37+01:00
sanka_82
Hali!

A problémám:
adott egy adatbázis és 2 különböző user különféle jogokkal ezen az adatbázison. Egy ANT scriptet használok, ami minden egyes lefutásnál megnézi(egy tárolt eljárásá segítségével), hogy az adott user szerepel-e a mysql.user táblában és ha igen, akkor használja a "DROP USER" utasítást. A probléma, hogy az egyik user-t törli korrekten (ezért gondolom, hogy nem a tárolt eljárásban van a hiba), a másikat viszont nem. Ergo mikor le akarom futtani a CREATE USER-t egy hibát kapok, miszerint a CREATE USER nem tudja létrehozni az adott felhasználót.
Ami furcsa, hogy a mysql.user táblában nem találom ezt a user-t, de ha lefuttatom a DROP USER-t a mysql kliens-en semmi hibát nem ad vissza, és ténylegesen dobja a felhasználót.

A tárolt eljárás:

CREATE PROCEDURE ${database_name}.drop_user_if_exists(IN username VARCHAR(20)) BEGIN DECLARE numOfUser BIGINT DEFAULT 0 ; SELECT COUNT(*) INTO numOfUser FROM mysql.user WHERE User = username ; SET @dropUser = CONCAT("DROP USER ", username,";"); IF numOfUser > 0 THEN PREPARE stmt from @dropUser ; EXECUTE stmt ; DEALLOCATE PREPARE stmt ; END IF; END ;$$

Ezt hívom meg 2x:
CALL ${database_name}.drop_user_if_exists("${user_name}_1");
CALL ${database_name}.drop_user_if_exists("${user_name}_2");

Mindent root-ként hajtok végre. Az ANT script futtatásához a mysql-connector-java-5.1.7 konnektort használom az SQL taskom lefutásához.
Mutasd a teljes hozzászólást!
Nem lehet, hogy a másik felhasználó még be van jelentkezve és ez okozza a dolgot? Netán egy flush privileges utasítás kiadása a törlések után is segíthet a dolgon.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd