- 论坛徽章:
- 0
|
原帖由 hackerwang 于 2008-3-14 15:07 发表
我在用grant创建用户的时候grant all on *.* to user@'%' identified by '密码',由于业务需要我现在想让用户只访问db这个数据库,请问应该怎么修改!
UPDATE mysql.user
我用的是5.0.51a,可以这样用:
先撤消user的全局权限
- UPDATE mysql.user
- SET Select_priv = 'N',
- SET Insert_priv = 'N',
- SET Update_priv = 'N',
- SET Delete_priv = 'N',
- SET Create_priv = 'N',
- SET Drop_priv = 'N',
- SET Reload_priv = 'N',
- SET Shutdown_priv = 'N',
- SET Process_priv = 'N',
- SET File_priv = 'N',
- SET Grant_priv = 'N',
- SET References_priv = 'N',
- SET Index_priv = 'N',
- SET Alter_priv = 'N',
- SET Show_db_priv = 'N',
- SET Super_priv = 'N',
- SET Create_tmp_table_priv = 'N',
- SET Lock_tables_priv = 'N',
- SET Execute_priv = 'N',
- SET Repl_slave_priv = 'N',
- SET Repl_client_priv = 'N',
- SET Create_view_priv = 'N',
- SET Show_view_priv = 'N',
- SET Create_routine_priv = 'N',
- SET Alter_routine_priv = 'N',
- SET Create_user_priv = 'N'
- WHERE User = 'user';
复制代码
然后增加user对特定DB的操作权限
- INSERT INTO mysql.db VALUES ('%', 'db', 'user', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
复制代码
最后刷新权限表:
·
楼主觉得麻烦不?我觉得挺麻烦,有些比较旧的版本估计这种方式还要出问题(它不一定支持上面的所有权限)。
我觉得最好的方法是用REVOKE删掉权限然后重新GRANT. |
|