声明:
本次活动组织者:火柴天堂。本次活动性质:非商业性活动,只为学习交流。
见附件,是一个数据库的完整表结构和用户权限分配。我试过了,不需要任何改动,使用navicat,在已建立的连接上右键-”运行批次任务文件“,可以直接生成一个完整数据库的。以下是我给你的建议性测试方案:测试目的:重现bug:使用非root用户访问数据库,数据库提示:访问被拒绝。我之前试过,重现概率 约2/10(重现条件:利用我们实验室的不同机子,进行相同的操作)
测试环境:widnows2003/2000,mysql5.0,navicat 8/mysql-font/msyql命令行/JDBC代码,mysql驱动(这个你可以随意在网上下载)。
测试步骤:1.建立数据库:先用navicat建立一个连接,然后鼠标放在该连接上,点击右键,”运行批次任务文件“,导入文件,即可。你也可以使用mysql-font来操作。(这一步可能会涉及到乱码的问题,因为汉字编码的问题,相信你可以搞定的。至于使用什么编码,对测试结果影响不大)2.使用用户名:admin;密码:admin,(我已经在sql代码中创建了这个用户,并分配了权限),访问刚建立的那个数据库。
你可以尝试通过其他方式,使用其他用户访问,试试看。本机访问或局域网访问,均可。
可参考的访问方式:a.自己写java代码去连接数据库。b.通过可视化工具,如mysql-font,navicat 8.预期重现结果:提示:”access denied......“
说明:在一个台机子上,测试1次即可,不必重复测试。
请大家在回帖中写上 你测试的环境和测试结果。谢谢火柴天堂
2008-10-26

解决方案 »

  1.   

    请大家积极参与测试,测者有分。附件(建立数据库的sql代码):create database mybbs;use mybbs;create table article 
    (
    id int primary key,
    pid int,
    rootid int,
    title varchar(255),
    cont text,
    ptime time,
    isleaf boolean,
    browse_times int,
    reply_times int
    );create table user
    (
    user_id int primary key,
    user_name char(20),
    password char(20),
    nick_name char(30),
    name char(20),
    sex char(5),
    taste text,
    email char(30),
    level int,
    register_time time,
    sign char(60),
    image char(60)
    );create table post
    (
    id int primary key,
    user_id int,
    foreign key(id) references article(id),
    foreign key(user_id) references user(user_id)
    );create table area
    (
    area_id int primary key,
    area_name char(20)
    );
    create table block
    (
    block_id int primary key,
    block_name char(20),
    fore_word char(60)
    );
    create table include
    (
    block_id int primary key,
    area_id int,
    foreign key (area_id) references area (area_id),
    foreign key (block_id) references block (block_id)
    );create table contain
    (
    id int primary key,
    block_id int,
    foreign key(block_id) references block (block_id),
    foreign key(id) references article (id)
    );insert into article values (1, 0, 1, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1,20,9);
    insert into article values (12, 0, 12, '蚂蚁大战大象', '蚂蚁大战大象', now(), 1,20,0);
    insert into article values (2, 1, 1, '大象被打趴下了', '大象被打趴下了',now(), 1,20,3);
    insert into article values (3, 2, 1, '蚂蚁也不好过','蚂蚁也不好过', now(), 0,20,0);
    insert into article values (4, 2, 1, '瞎说', '瞎说', now(), 1,20,1);
    insert into article values (5, 4, 1, '没有瞎说', '没有瞎说', now(), 0,20,0);
    insert into article values (6, 1, 1, '怎么可能', '怎么可能', now(), 1,20,2);
    insert into article values (7, 6, 1, '怎么没有可能', '怎么没有可能', now(), 0,20,0);
    insert into article values (8, 6, 1, '可能性是很大的', '可能性是很大的', now(), 0,20,0);
    insert into article values (9, 2, 1, '大象进医院了', '大象进医院了', now(), 1,20,0);
    insert into article values (10, 9, 1, '护士是蚂蚁', '护士是蚂蚁', now(), 0,20,0);
    insert into article values (11, 0, 11, 'xxxx', 'xxxxx', now(), 0,20,0);
    insert into user values(1,'admin','admin','admin','admin','man','论坛管理','[email protected]',101,now(),'签名',null);
    insert into user values(2,'test','test','test','test','woman','测试用户','[email protected]',1001,now(),'测试用户签名',null);
    insert into user values(3,'root','hepeng','admin_all','admin_all','man','论坛总管','[email protected]',10000,now(),'我是论坛总管',null);grant select on mybbs.* to 'test'@'%' identified by 'test' with grant option;
    grant insert on mybbs.article to 'test'@'%';
    grant insert on mybbs.post to 'test'@'%';
    grant insert on mybbs.contain to 'test'@'%';
    grant update on mybbs.user to 'test'@'%';
    grant update on mybbs.article to 'test'@'%';insert into post values(1,1);
    insert into post values(2,2);
    insert into post values(3,1);
    insert into post values(4,2);
    insert into post values(5,1);
    insert into post values(6,2);
    insert into post values(7,1);
    insert into post values(8,2);
    insert into post values(9,1);
    insert into post values(10,2);
    insert into post values(11,1);
    insert into post values(12,2);insert into area values(1,'大象和蚂蚁');
    insert into area values(2,'测试分区');insert into block values(1,'大象','大象版块');
    insert into block values(2,'蚂蚁','大象版块');
    insert into block values(3,'测试版块','大象版块');insert into include values(1,1);
    insert into include values(2,1);
    insert into include values(3,2);insert into contain values(1,1);
    insert into contain values(2,1);
    insert into contain values(3,1);
    insert into contain values(4,1);
    insert into contain values(5,1);
    insert into contain values(6,1);
    insert into contain values(7,1);
    insert into contain values(8,1);
    insert into contain values(9,1);
    insert into contain values(10,1);
    insert into contain values(11,1);
    insert into contain values(12,1);
    grant select on mybbs.* to 'username'@'%' identified by 'pwd' with grant option;
    grant insert on mybbs.article to 'username'@'%';
    grant insert on mybbs.post to 'username'@'%';
    grant insert on mybbs.contain to 'username'@'%';
    grant update on mybbs.user to 'username'@'%';
    grant update on mybbs.article to 'username'@'%';grant select on mybbs.* to 'admin'@'%' identified by 'admin' with grant option;
    grant insert on mybbs.article to 'admin'@'%';
    grant insert on mybbs.post to 'admin'@'%';
    grant insert on mybbs.contain to 'admin'@'%';
    grant update on mybbs.article to 'admin'@'%';
    grant update on mybbs.user to 'admin'@'%';
    grant update on mybbs.block to 'admin'@'%';
    grant update on mybbs.post to 'admin'@'%';
    grant update on mybbs.contain to 'admin'@'%';
    grant delete on mybbs.article to 'admin'@'%';
    grant delete on mybbs.user to 'admin'@'%';
    grant delete on mybbs.post to 'admin'@'%';
    grant delete on mybbs.contain to 'admin'@'%';grant select on mybbs.* to 'admin'@'%' identified by 'pwd' with grant option;
    grant insert on mybbs.article to 'admin'@'%';
    grant insert on mybbs.post to 'admin'@'%';
    grant insert on mybbs.block to 'admin'@'%';
    grant insert on mybbs.include to 'admin'@'%';
    grant insert on mybbs.contain to 'admin'@'%';
    grant update on mybbs.article to 'admin'@'%';
    grant update on mybbs.user to 'admin'@'%';
    grant update on mybbs.block to 'admin'@'%';
    grant update on mybbs.contain to 'admin'@'%';
    grant update on mybbs.area to 'admin'@'%';
    grant update on mybbs.post to 'admin'@'%';
    grant delete on mybbs.article to 'admin'@'%';
    grant delete on mybbs.user to 'admin'@'%';
    grant delete on mybbs.post to 'admin'@'%';
    grant delete on mybbs.block to 'admin'@'%';
    grant delete on mybbs.include to 'admin'@'%';
    grant delete on mybbs.contain to 'admin'@'%';
    grant delete on mybbs.contain to 'admin'@'%';
      

  2.   

    呵呵,article 表的数据很有意思嘛。
      

  3.   

    不是BUG!
    你忘掉刷新授权表了!flush privileges;
    (1 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(1 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)(0 row(s)affected)
    (0 ms taken)
      

  4.   

    看这个:
    http://topic.csdn.net/u/20071229/09/a0c7e024-0293-4e7a-9454-ba412f94d99d.html
      

  5.   

    不过,说实话,mysql5确实是有bug,不过,不是你这方面的bug。
    查询上,有些地方支持的不好,我看了mysql的测试文档,都没有测试到那一点,有可能是很少有人会用比较复杂的查询吧,测试没到位。
    毕竟,免费的就是免费的,做成这样,也不错了。