创建数据库:
create database jiradb character set 'UTF8';
创建用户:
create user jirauser identified by 'jira';
grant all privileges on jiradb.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on jiradb.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
如果用下面的语句,’jirauser‘并不会获得任何权限,我已试过多次了:
grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
[ 本帖最后由 NODDY820 于 2007-7-19 11:06 编辑 ]作者: 闭合叶子 时间: 2007-7-21 18:36
多谢楼主与大家分享,顶一下~~~作者: tidy_wwwww 时间: 2007-7-22 21:17
grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
通常在这里,大家好像都习惯性的使用*.*了,却忘了SHELL和DOS还是有区别的,所以,谢谢LZ的提醒!谨记谨记~~作者: thedaythegirl 时间: 2007-7-23 16:31 标题: 回复 #1 NODDY820 的帖子 lz的学习态度很认真,补充一下:
创建jirauser操作可以不用做(create user jirauser identified by 'jira';)因为下面的赋权语句已经是先创建用户然后赋权;
grant all privileges on jiradb.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on jiradb.* to 'jirauser'@'localhost' identified by 'jira' with grant option;作者: thedaythegirl 时间: 2007-7-23 17:03 标题: mysql的权限 有些同学执行了如下的赋值语句:
mysql>grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
mysql>grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
shell#mysqladmin reload
但没有在Mysql Administrator中jiradb对应的Assigned privileges中没有查看到任何权限,可能会感到困惑,这里给大家解释一下:
如果用上面的语句:
他的作用是创建了超级用户,而且给这个用户赋了所有数据库实例的所有对象的操作权限(*.*),并不是没有赋权,他的权限是在mysql数据库实例中的user表中管理的,大家可以使用Mysql Query 工具查看该表,会发现用户jirauser对应的记录所有的权限列值都是Y,说明他是有权限的。
如果使用如下的语句:
mysql>grant all privileges on jiradb.* to 'zhang'@'%' identified by 'jira' with grant option;
mysql>grant all privileges on jiradb.* to 'zhang'@'localhost' identified by 'jira' with grant option;
shell#mysqladmin reload
这样执行将用户zhang的权限限制在数据库实例jiradb上,他不能对别的实例操作;
查看user表,你会发现他所对应的权限列值都是N
zhang的权限在表db中管理,查看db表,你会发现他所对应的权限值都是Y
总结:使用工具mysql administrator 在Assigned privileges中看到的权限是对应表db的数据,而不是user表的。也不能直接否定grant privileges on *.* 这个语句的作用 :)