环境:Win2003下使用SQLyog 6.5管理MySQL 5.0数据库需求:建立多个不同的数据库,分别用不同的用户来管理对应的数据库,用户之间互相隔离。实际用途就是给每个网站分配一个数据库,然后每个网站程序都用一个单独的数据库用户名连接各自的数据库。建立了数据库test_1和test_2,分别用数据库用户test_user1和test_user2来管理。test_user1只能管理test_1,不能管理服务器上其他的数据库。请问如何设置数据库用户权限来保障服务安全?以及怎样在SQLyog中完成这个操作。请高手解答,谢谢!

解决方案 »

  1.   

    1、输入用户名、密码,设置其权限,SELECT、DELETE、UPDATE等等;
    2、Test_user1只能管理test_1:Test_user1在test_2中没有任何权限就OK了。
      

  2.   

    "Test_user1只能管理test_1:Test_user1在test_2中没有任何权限就OK了"
    这个应该怎么设置呢?
      

  3.   

    也就是说,首先设置各个用户的全局权限,比如SELECT、INSERT等等,第二个是设置各个用户
    在不同的数据库中的权限(权限级别)
      

  4.   

    就是在Test_user1在test_2中没有SELECT、UPDATE等等,即不选中任何选项。
      

  5.   

    GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION  what改成对应的数据库就可以了吧?
      

  6.   

    哈哈,正好我也要用到,借个地方问了问题,谢谢wwwwb.楼主也可以参考下:http://xhl.cqwu.net/article.asp?id=111
      

  7.   

    下面的两条命令为database1和database2设置了SELECT用户权限。GRANT SELECT ON database1.* to 'abc'@'server1' IDENTIFIED BY 'password1';GRANT SELECT ON database2.* to 'abc'@'server1' IDENTIFIED BY 'password2';第一条命令设置了用户abc在连接数据库database1时使用password1。第二条命令设置了用户abc在连接数据库database2时使用password2。因此,用户abc在连接数据库database1和database2的密码是不一样的。上面的设置是非常有用的。如果你只想让用户对一个数据库进行有限的访问,而对其它数据库不能访问,这样可以对同一个用户设置不同的密码。如果不这样做,当用户发现这个用户名可以访问其它数据库时,那将会造成麻烦。 
      

  8.   

    谢谢大家!
    我对MySQL不是很熟悉,还想问一下,添加用户时(图1)设置test_user1全局权限的时候应该选择哪些权限项目?
    数据库是网站的dede或ecms之类的cms程序用的,为了安全,只要满足能正常运行这些程序就可以了,不需要很高权限,但是我不清楚需要选择哪些权限。望高手指点。
      

  9.   

    取决于用户的操作,一般查询即SELECT就可以了,如要添加、删除、替换,设置
    INSERT、DELTE、UPDATE,根据你的具体情况而定
      

  10.   

    就是说一般选择select insert update delete create这几个就够了?
    下面的像index这些是否需要呢?
      

  11.   

    YES,
    面的像index这些是否需要呢?
    ,一般的用户 NO一般选择select就OK了
      

  12.   

    MySQL软件安装好后就有三个数据库,information_schema、mysql、test,这三个哪些是没有用可以删除的?