https://bugs.kde.org/show_bug.cgi?id=435179

--- Comment #18 from gessel <ges...@blackrosetech.com> ---
Sure, since it works with the user ''@'%' and working is better than secure,
the current state is :

Current database: digikam

+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for gessel@%                                                          
                                                   |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `gessel`@`%` IDENTIFIED BY PASSWORD
'*****************************************' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.004 sec)

Current database: digikam

+-----------------------------------------------------------------+
| Grants for @%                                                   |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO ``@`%`                                    |
| GRANT ALL PRIVILEGES ON `digikam`.* TO ``@`%` WITH GRANT OPTION |
+-----------------------------------------------------------------+


So to test:

 MariaDB [digikam]> DROP USER ``@`%`;
 MariaDB [digikam]> flush privileges;
 MariaDB [digikam]> show grants for ''@'%';
 ERROR 1141 (42000): There is no such grant defined for user '' on host '%'


And... 

digikam.database: Creating new tag for name "TT" fullName "TT"
digikam.dbengine: Failure executing query:
 "INSERT INTO Tags (pid, name) VALUES( ?, ?);" 
Error messages: "QMYSQL3: Unable to execute statement" "The user specified as a
definer (''@'%') does not exist" "1449" 2 
Bound values:  (QVariant(int, 4), QVariant(QString, "Tony Thomas"))
digikam.dbengine: Error while executing DBAction [ "InsertTag" ] Statement [
"INSERT INTO Tags (pid, name) VALUES( :tagPID, :tagname);" ]
digikam.database: Attempt to create tag properties for tag id 0
digikam.general: Failed to get person tag

(as before, consistency is good.)

 MariaDB [digikam]> GRANT TRIGGER ON digikam.* TO 'gessel'@'localhost';
 Query OK, 0 rows affected (0.000 sec)
 MariaDB [digikam]> flush privileges;

 MariaDB [digikam]> show grants for 'gessel'@'localhost';

+------------------------------------------------------------------------------------------------------------------------+
 | Grants for gessel@localhost                                                 
                                          |

+------------------------------------------------------------------------------------------------------------------------+
 | GRANT ALL PRIVILEGES ON *.* TO `gessel`@`localhost` IDENTIFIED BY PASSWORD
'*51A4B3BD9F7DFD67D84ED8C045C952264A901F4C' |
 | GRANT TRIGGER ON `digikam`.* TO `gessel`@`localhost`                        
                                          |

+------------------------------------------------------------------------------------------------------------------------+

Initial test, no change, restart digikam and...

 digikam.database: Creating new tag for name "TT" fullName "TT"
 digikam.dbengine: Failure executing query:
  "INSERT INTO Tags (pid, name) VALUES( ?, ?);" 
 Error messages: "QMYSQL3: Unable to execute statement" "The user specified as
a definer (''@'%') does not exist" "1449" 2 
 Bound values:  (QVariant(int, 4), QVariant(QString, "Tony Thomas"))
 digikam.dbengine: Error while executing DBAction [ "InsertTag" ] Statement [
"INSERT INTO Tags (pid, name) VALUES( :tagPID, :tagname);" ]
 digikam.database: Attempt to create tag properties for tag id 0
 digikam.general: Failed to get person tag

No improvements... so add a few more grants to extend the user class:

 MariaDB [digikam]> GRANT TRIGGER ON digikam.* TO 'gessel'@'127.0.0.1';
 MariaDB [digikam]> GRANT TRIGGER ON digikam.* TO 'gessel'@'%';
 MariaDB [digikam]> flush privileges;


still no change:

 digikam.database: Creating new tag for name "TT" fullName "TT"
 digikam.dbengine: Failure executing query:
  "INSERT INTO Tags (pid, name) VALUES( ?, ?);" 
 Error messages: "QMYSQL3: Unable to execute statement" "The user specified as
a definer (''@'%') does not exist" "1449" 2 
 Bound values:  (QVariant(int, 4), QVariant(QString, "Tony Thomas"))
 digikam.dbengine: Error while executing DBAction [ "InsertTag" ] Statement [
"INSERT INTO Tags (pid, name) VALUES( :tagPID, :tagname);" ]
 digikam.database: Attempt to create tag properties for tag id 0
 digikam.general: Failed to get person tag

Now add back user ''@'%' and see:

 MariaDB [digikam]> CREATE USER ``@`%` IDENTIFIED BY '';
 Query OK, 0 rows affected (0.004 sec)
 MariaDB [digikam]> GRANT ALL ON digikam.* TO ''@'%' IDENTIFIED BY '' WITH
GRANT OPTION;
 Query OK, 0 rows affected (0.000 sec)
 MariaDB [digikam]> FLUSH PRIVILEGES;


Person tag successfully created.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to