I can't get table-specific grants to work.

(FIRST: I log in as an administrator and run the following command:)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON myDataBase.watch TO '%';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM tables_priv;
+------+------------+------+------------+-------------------+----------------+-----------------------------+-------------+
| Host | Db         | User | Table_name | Grantor           | Timestamp      | 
|Table_priv                  | Column_priv |
+------+------------+------+------------+-------------------+----------------+-----------------------------+-------------+
| %    | myDataBase | %    | watch      | nhamlin@localhost | 20020116151451 | 
|Select,Insert,Update,Delete |             |
+------+------------+------+------------+-------------------+----------------+-----------------------------+-------------+
1 row in set (0.00 sec)

mysql> select Host, Db, User, Select_priv as SEL, Insert_priv as INS, Update_priv as 
UPDT, Delete_priv as DEL FROM db WHERE user = 'dummy';
+------+------------+-------+-----+-----+------+-----+
| Host | Db         | User  | SEL | INS | UPDT | DEL |
+------+------------+-------+-----+-----+------+-----+
| %    | myDataBase | dummy | Y   | N   | N    | N   |
+------+------------+-------+-----+-----+------+-----+
1 row in set (0.00 sec)



(SECOND: I log out and log back in using another user with the following credentials:)
mysql> select user, Select_priv as SEL, Insert_priv as INS, Update_priv as UPDT, 
Delete_priv as DEL FROM user WHERE user = 'dummy';
+-------+-----+-----+------+-----+
| user  | SEL | INS | UPDT | DEL |
+-------+-----+-----+------+-----+
| dummy | N   | N   | N    | N   |
+-------+-----+-----+------+-----+
1 row in set (0.00 sec)



(THIRD: I see if I can access the table.)
mysql> select * from watch;
+---------+---------+---------+---------------------+
| user    | w_table | w_value | create_date         |
+---------+---------+---------+---------------------+
| nhamlin | fo      | 6075    | 2002-01-03 13:46:22 |
| nhamlin | fo      | 7584    | 2002-01-04 14:51:56 |
| nhamlin | p_q     | 3350    | 2002-01-10 12:23:48 |
| nhamlin | cpr     | 4101    | 2002-01-10 19:24:56 |
| nhamlin | cpr     | 4094    | 2002-01-11 17:38:46 |
| nhamlin | fo      | 7       | 2002-01-15 10:10:34 |
| qa568   | fo      | 10409   | 2002-01-16 12:46:38 |
+---------+---------+---------+---------------------+
7 rows in set (0.00 sec)



(FOURTH: I then try to add a value to the table.  This is where it fails.)
mysql> insert into watch values ('dummy','fo','6075',NOW());
ERROR 1142: insert command denied to user: 'dummy@localhost' for table 'watch'


What am I doing wrong?  I have about 9 tables inside of MyDataBase, and I only want 
two tables, 'watch' and 'user', to be updatable by anyone with an existing account who 
can log in from anywhere (more specifically, the web).


Nicholas

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to