呵呵,那是当然,
这可是MySQL的强项了,
授权表的用途: user表
  user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。
  范围字段决定是否允许或拒绝到来的连接。
  对于允许的连接,权限字段指出用户的全局(超级用户)权限,并适用于所有数据库。
  例如,如果你设定某用户的 Delete_priv='Y',
  则这个用户可以从任何表中删除记录。 db表
  范围字段决定用户能从哪个主机存取哪个数据库。
  权限字段决定允许哪个操作。
  在这里指定的权限适用于一个数据库中的所有表。
   
host表
  host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,
  这可能比单独使用db好些。db和host表一起使用: 
  当你想要一个给定的db条目应用于若干主机时,host表作为db表的扩展被使用。
  例如,如果你想要一个用户能在你的网络从若干主机使用一个数据库,
  在用户的db表的Host条目设为空值,然后将那些主机的每一个移入host表。
   
tables_priv表
  指定表级权限,在这里指定的一个权限适用于一个表的所有列。 columns_priv表
  指定列级权限,这里指定的权限适用于一个表的特定列。tables_priv和columns_priv表类似于db表,但是更精致:他们作用于表和列级而非作用于数据库级。 注意管理权限(reload, shutdown, 等等)仅在user表中被指定。
这是因为管理性操作是服务器本身的操作并且不是特定数据库,因此没有理由在其他授权表中列出这样的权限。
事实上,只需要检查user表来决定你是否有权限执行一个管理操作。 file权限也仅在user表中指定。
它虽然不是管理性权限,但你在服务器主机上的读或写文件的的权力是独立于你正在存取的数据库的。范围列内容
  一些范围列要求文字值,但它们大多数允许通配符或其他特殊值。 
Host 
  Host列值可以是一个主机名、一个IP地址或'localhost'指出本地主机。
  你可以在Host字段里使用通配符字符“%”和“_”。
  %值匹配所有主机,并可用于允许一个用户从任何地方连接。一个空白的Host值等同于%。
  如%wisc.edu匹配任何wisc.edu域内的主机,而%.edu匹配任何教育学院的主机。
  类似地,192.168.%匹配任何在192.168 B类子网的主机,
  而192.168.3.%匹配任何在192.168.3 C类子网的主机。
 (例外:在db表中,一个空白Host值含义是“进一步检查host表”)User 
  用户名必须是文字的或空白。
  User字段中不支持通配符,但是你能指定一个空白值匹配任何用户。
  %作为一个User值并不意味着空白,相反地它匹配一个字面上的%名字,这可能不是你想要的。Password 
  口令值可以是空或非空,不允许用通配符。
  一个空口令并不意味着匹配任何口令,它意味着用户连接服务器时不得指定口令。
  口令是以一个加密过的值存储的,而不是一个字面上的文本。
  如果你在Password列中存储一个实际字面上的口令,用户将不能连接!
  GRANT语句和mysqladmin password命令为你自动加密口令,
  但是如果你用诸如INSERT、REPLACE、UPDATE或SET PASSWORD等命令,
  一定要用PASSWORD("new_password")函数而不是简单的"new_password"来指定口令。 
  例如 UPDATE user SET Password=PASSWORD('your password') WHERE User='root';

解决方案 »

  1.   

    不太明白ing......不好意思,我刚学数据库,能不能讲得详细点~~比如,当我想用root访问MYSQL是,要求输入密码,数据库就这一个用户``该怎么做?
      

  2.   

    这是创建并授权一个用户。
    这三种方法你可以选一种:
    如果知道从那个主机连接可以用
    GRANT ALL ON *.* TO username@localhost IDENTIFIED BY "password"
    这是允许在这个c类网络的机器访问数据库
    GRANT ALL ON *.* TO [email protected].% IDENTIFIED BY "password"
    这是允许从任何一台机器访问数据库
    GRANT ALL ON *.* TO username@% IDENTIFIED BY "password"
    例如:
    GRANT ALL ON *.* TO yhl@localhost IDENTIFIED BY "123"如果你不想让某个管理员值管理特定的数据库可以这样做:
    GRANT ALL ON db_name.* TO username@localhost IDENTIFIED BY "password"本人卓见,请灵活处理。