Hi!
Jerry Schwartz wrote: > [[...]] > >> [[...]] >> > [JS] Sorry, that still doesn't make sense to em. To authenticate the user, > mysqld needs to read the mysql database. That is also where the databases are > listed (in `mysql`.`db`). If the daemon can read `mysql`.`user`, why can't it > read `mysql`.`db`? It's a MyISAM database, so everything is in the same file. Now I understand how your question was meant - sorry to explain a completely different issue first. About reading files: MyISAM is stored file-per-table, so the table "mysql.user" is stored in the three files "mysql/user.{frm,MYD,MYI}"; table "mysql.db" is stored in other files which might have got different permissions. (This would be a handling error, obviously.) > > What am I missing? Does SHOW DATABASES do something other than pull the > database names out of `mysql`.`db`? AIUI, there are operations for which the server wants to read the directory, and "show databases" seems to be one of them. For examples, see these bug reports: http://bugs.mysql.com/bug.php?id=22615 http://bugs.mysql.com/bug.php?id=42676 http://bugs.mysql.com/bug.php?id=51399 Sorry - I would tell you more details, if I knew them for sure. Now, consider a case like this: drwx--x--x user-A group-B . -rw-rw-rw- user-A group-B file In this case, "file" would be readable (and even writable) for everybody knowing the name, but a "ls ." would fail for everybody but "user-A": There is no "read" permission on the directory for anybody but the owner. Regards, Jörg -- Joerg Bruehe, MySQL Build Team, joerg.bru...@oracle.com ORACLE Deutschland B.V. & Co. KG, Komturstrasse 18a, D-12099 Berlin Geschaeftsfuehrer: Juergen Kunz, Marcel v.d. Molen, Alexander v.d. Ven Amtsgericht Muenchen: HRA 95603 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org