在 Windows 版 MySQL 5.1 上,为什么我不能为“root”用户分配 DBA 角色?

在 Windows 版 MySQL 5.1 上,为什么我不能为“root”用户分配 DBA 角色?

在适用于 Windows 的 MySQL 5.1 上,为什么我无法将 DBA 角色分配给“root”用户?MySQL Workbench 允许我添加除 DBA 之外的所有其他角色。此外,当我以 root 身份登录时,在任何表上“更改架构”时,我看不到显示所有数据库属性的所有选项卡……我只看到允许我更改排序规则的第一个选项卡。

这张图片有什么问题?我该如何授予 root 所有权限?我尝试了命令行中的 GRANT ALL PRIVILEGES 等几种变体,但都不起作用。

我的根账户无法更改我创建的任何给定表的列名、索引或选项。我可以创建表并删除它们,但无法更改它们。

答案1

root 默认拥有所有权限。你认为为什么需要赋予它更多权限?

尝试运行这些 SQL 语句进行验证。与几乎所有其他帐户进行比较,您会发现 root 在 mysql.user 表中拥有的权限远远超过任何其他帐户,除非您做了一些不寻常的事情。

show grants for 'root'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '...' WITH GRANT OPTION
select * from mysql.user where user='root';

*************************** 3. row ***************************
                 Host: 127.0.0.1
                 User: root
             Password: ...
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y

相关内容