MySQL用户管理及权限设置

  • 添加MySQL用户,需要使用root用户登录
    创建用户格式:create user @ identified by '';
    user_name 是创建的MySQL用户名;
    host 是指定该用户在哪台主机上可以登录(本地:localhost,任意主机:%,指定主机IP:1.1.1.1);
    user_password 是指创建用户的密码。
    示例:
    create user user_test@'%' identified by '123456';     # 创建MySQL用户名和密码
    
  • 给用户授权
    授权格式:grant on . to ''@'';
    privileges:用户操作权限,如selectInsertupdatedelete等,all为全部权限;
    db_name:数据名称;
    table_name:表名称;
    user_name:用户名称;
    host:主机(本地:localhost,任意主机:%,指定主机IP:1.1.1.1)。
    以上几个参数,下文就不在一一描述了。
    grant select,insert on mysql.user to 'test'@'%';      # 授权test用户在任何主机上登录,并且可以对数据库mysql的user表进行select和insert操作。
    grant all on *.* to 'test'@'%';       # 授权test用户在任何主机上登录,并可以对任何数据库的任何表进行所有操作。
    
    如果想让非root用户拥有授权其他用户权限的话,需要下面操作:
    格式:grant privileges on db_name.table_name to 'user_name'@'host' with grant option;
    grant all on mysql.user to 'test'@'host' with grant option;       # 授权
    flush privileges;             # 刷新权限
    
  • 查看用户权限授予执行的命令
    show grants for 'test';
    
  • 设置/修改用户密码
    格式:set password for ''@'' = password('');
    # 示例
    set password for 'test'@'%' = password("123456");
    set password = password("123456");            # 当前登录用户修改
    
  • 撤销用户权限
    格式:revoke privilege on db_name.table_name from 'user_name'@'host';
    # 示例
    revoke select on *.* from 'test'@'%';     # 撤销test用户的所有数据库表的查询权限
    
  • 删除用户
    格式:drop user 'user_name'@'host';
    # 示例
    drop user 'test'@'%';     # 删除test用户
    

你可能感兴趣的:(MySQL用户管理及权限设置)