Hello. MySQL 4.1.0 is not respecting the registered privileges.
Before I switch back to the last stable version, I would like to know if there is a workaround to my problem or if other persons have met the same problems. Following is the description of the troubles. I have installed MySQL 4.1.0-alpha-standard on Linux (RH 7.3 and RH 9). I installed it from scratch using the MySQL tarball. After the installation, I transfered by 'tar' the 4.03 databases (MyISAM and InnoDB) into the 'data' directory of MySQL4.1. I didn't transfer the MySQL privileges database mysql (mysql.user, mysql.db, etc)'. So I am working with the privileges 'format' of 4.1 and mysql_fix_privilege_tables is not needed. I use MySQL 4.1 because of the subselect feature. I have 7 databases and 2 users plus root. For each database, I grant all privileges to the user for all host ('%'). Each user always use the same password for all the databases. "show databases" displays an incorrect list of databases. Each user lists a database it should not, and doesn't show all the databases it should. Same thing with 'use <database>' : the access is denied for some databases for which the user s granted 'all privileges'. An example from the client: =========================== [EMAIL PROTECTED]<64> mysql -p -u archive -h dbserver Enter password: mysql> select user(); +---------------------------+ | user() | +---------------------------+ | [EMAIL PROTECTED] | +---------------------------+ mysql> show grants for archive; | Grants for [EMAIL PROTECTED] ... GRANT USAGE ON *.* TO 'archive'@'%' IDENTIFIED BY PASSWORD '*blabla...' | GRANT ALL PRIVILEGES ON `dbancien`.* TO 'archive'@'%' | GRANT ALL PRIVILEGES ON `dbrecent2`.* TO 'archive'@'%' | GRANT ALL PRIVILEGES ON `dbcourant`.* TO 'archive'@'%' | GRANT ALL PRIVILEGES ON `dbcourant`.* TO 'archive'@'%' mysql> use cctest Database changed ======> should not be possible (should not work) ! mysql> use dbcourant ======> works according to the privileges Database changed mysql> use dbancien ERROR 1044: Access denied for user: '[EMAIL PROTECTED]' to database 'dbancien' ======> should work, because all privileges are granted mysql> show databases; +-----------+ | Database | +-----------+ | cctest | ===> 'dbancien' should be displayed instead of cctest | dbcourant | | dbrecent1 | | dbrecent2 | +-----------+ On the server now: ================== Following are some coloumns of the defined privileges : [EMAIL PROTECTED] data]# mysql -p -u root Enter password: mysql> select version(); +----------------------+ | version() | +----------------------+ | 4.1.0-alpha-standard | +----------------------+ 1 row in set (0.00 sec) mysql> use mysql mysql> select user,host from user; +---------+-----------+ | user | host | +---------+-----------+ | archive | % | | ccsql | % | | root | dbserver | | root | localhost | +---------+-----------+ 4 rows in set (0.00 sec) mysql> select user,host,db from db; +---------+------+----------------+ | user | host | db | +---------+------+----------------+ | ccsql | % | cctandem | | ccsql | % | cctandemOnline | | ccsql | % | cctest | | archive | % | dbancien | | archive | % | dbcourant | | archive | % | dbrecent1 | | archive | % | dbrecent2 | +---------+------+----------------+ 7 rows in set (0.00 sec) Any idea ? Thanks in advance. Christophe. -- *** Christophe DIARRA Institut de Physique Nucleaire 15, Rue Georges Clemenceau Bat 102 - S2I 91406 ORSAY Cedex Tel: (33) 1 69 15 65 60 Fax: (33) 1 69 15 64 70 E-mail: [EMAIL PROTECTED] *** -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]