那是不是说..一定 要在USER下边赋予权限吗?????

解决方案 »

  1.   

    呵呵,
    CREATE DATABASE 
    会引起访问其它数据库,所以要有创建数据库的权限必须在 User 中授与
      

  2.   

    那样的话定义了USER里的权限,那还要不要再在DB里再定义一次呢???如果要的话,那么DB里的权限有什么意义??
      

  3.   

    那DB的有什么意义呢??
    如果不在USER里受权,,那么是不是除了新建数据库不能外,,,其他的如加一个表,新增数据都可以???
      

  4.   

    那是不是说只在USER里边受权就可以了???
      

  5.   

    不行丫....只在USER里边受权的话,,,一进去就可以看到MYSQL的数据库了................很不安全丫.....
      

  6.   

    DB 表是将权限授与对 某一特定数据库的,
    所以你当然就不可以进行建数据库操作了,
    而其它的操作,例如 INSERT DELETE SELECT 等等操作将是可以授与的,
    不过也只是针对于这个指定的数据库,
      

  7.   

    那我要建立一个非ROOT帐号,可以新建数据库,,,但是又不能看到MYSQL等其他数据库,,应如何操作呢??
      

  8.   

    呵呵,你的要求比较特别
    我们先来一步步分析实现
    实现一个非ROOT帐号,不能看到其它的数据库,但要可以建立数据库1)
    关闭 MySQL 服务器,并重新启动,
    启动时加 --skip-show-database 使一般数据库用户不能浏览其它数据库。1) 建立一个新用户 root123@% ,他只有一个 CREATE 权限,INSERT INTO `user` (
      `Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`
    ) VALUES(
      "%", "root123", "", "N", "N", "N", "N", "Y", "N", "N", "N", "N", "N", "N", "N", "N", "N"
    );现在的问题是你现在只能建立数据库
     CREATE DATABASE `DatabaseName`;
    而如果你希望访问一个已存在的数据库 `test`,或者是你新建立的数据库 `DatabaseName` 均是不可能的
    那么你可以通过下面的语句来使他可以访问数据库 `test`,INSERT INTO db (
    Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv
    ) VALUES (
    '%', 'test', 'root123', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y'
    );而为了实现用户可以访问他自己新建立的数据库,
    呵呵,好像是不可能的.
    如果你为别人提供一个 MySQL 服务的支持,
    那么最好的解决办法就是
    你给他规定好了库名,
    该用户只能访问这个数据库,
    在这个数据库下,
    他可以进行 CREATE TABLE
               ALTER TABLE
    等操作