mysql用户管理及权限管理

在mysql中,是由对应的host与user共同组成主键来区分用户。
user:代表用户名
host:主机名。如果host使用 * 代表所有用户都可以访问。

创建用户

直接使用root用户在mysql.user表中插入记录(不推荐)
专门创建用户的sql指令
基本语法:create user 用户名 identified by ‘明文密码’;
用户:用户名@主机地址
主机地址:‘’ or ‘%’

删除用户

基本语法:drop user 用户名@host;
修改用户密码
mysql中提供多种修改的方式:基本上都必须使用对应提供的一个系统函数:password(),需要靠改函数对密码进行加密处理。
使用专门的修改密码指令
基本语法:set password for 用户@主机 = password(‘新的明文密码’);

set password for root@localhost = password('root');

权限管理

数据权限:增删改查(insert/delete/update/select)
结构权限:结构操作(create/drop)
管理权限:权限管理(create user/grant/revoke):通常只给管理员此权限

  • 授予权限(root用户才能授予权限):grant 基本语法:grant 权限列表 on 数据库/.表名/ to 用户;
    权限列表:使用逗号分隔,但是可以使用all privileges代表全部权限
    数据库.表名:可以是单标(数据库名字.表名),可以是具体某个数据库(数据库.*),也可以整库(*.*) 不需要刷新

    grant select on my_db.my_table to 'user1'@'%';
    
  • 取消权限(root用户才能取消权限):revoke 基本语法:revoke 权限列表 on 数据库/.表名/ to 用户;
    权限列表:使用逗号分隔,但是可以使用all privileges代表全部权限
    数据库.表名:可以是单标(数据库名字.表名),可以是具体某个数据库(数据库.*),也可以整库(*.*) 不需要刷新

 revoke select on my_db.my_table to 'user1'@'%';
  • 刷新权限:flush flush:刷新,将当前用户的权限操作,进行刷新,将操作的具体内容同步到具体的表中 基本语法:flush
    privileges;

解决root密码丢失

  1. 停止服务:cmd中使用命令 net stop mysql
  2. 重启服务:cmd中使用命令 mysqld.exe --skip-grant-tables //启动服务器但是跳过权限
    当光标闪烁时表示服务端启动成功
  3. 当前启动的服务端没有权限概念:非常危险,任何客服端,不需要任何用户信息都可以直接登录,而且是root权限;
  4. 新开客户端,使用mysql.exe登录即可重置密码
  5. 关闭服务器(首先关闭光标闪烁的命令窗口,然后在任务管理器中找到mysqld.exe,结束这个进程),重启mysql服务器
原创文章 7 获赞 3 访问量 402

猜你喜欢

转载自blog.csdn.net/weixin_42951763/article/details/104485039