MySQL超详细实现用户管理实例

发布时间:2023-12-28 19:30

目录
  • 一、用户管理
    • 1.1 新建用户
    • 1.2 查看用户信息
    • 1.3 重命名用户
    • 1.4 删除用户
    • 1.5 修改用户密码
      • 1.修改当前的用户密码
      • 2.修改其他用户密码
    • 1.6 忘记密码怎么办
    • 二、授权
      • 2.1 用户授权
        • 2.2 查看所授予的权限
          • 2.3 撤销权限

          一、用户管理

          1.1 新建用户

          create user \'用户名\'@\'主机名\' [identified by [password] \'密码\'];
          
          • 用户名就不用解释了,就是我们登录时使用的账号
          • 主机名指定我们创建的用户可以在哪些主机上登陆,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%来表示。
          • identified by译为通过…来进行验证,也就是密码,密码分为明文和密文,明文直接就是identified by 加上’密码’即可,密文则是identified by password ‘密码’,多了password关键字。
          • 若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;若省略“IDENTIFIED BY”部分,则用户的密码将为空。

          明文创建用户

          \"MySQL超详细实现用户管理实例_第1张图片\"

          \"MySQL超详细实现用户管理实例_第2张图片\"

          密文创建用户

          \"MySQL超详细实现用户管理实例_第3张图片\"

          1.2 查看用户信息

          查看mysql库中的user表,强调一点,这个库只有root用户能查看,普通用户是没有权限查询这个库的。

          \"MySQL超详细实现用户管理实例_第4张图片\"

          如果我们想要让某一普通用户可以查看这个mysql库,需要使用grant进行授权。注意,授权工作也只能在root用户执行。

          \"MySQL超详细实现用户管理实例_第5张图片\"

          远程登陆,即从其他主机远程登录本机数据库

          \"MySQL超详细实现用户管理实例_第6张图片\"

          查看mysql.user表

          \"MySQL超详细实现用户管理实例_第7张图片\"

          \"MySQL超详细实现用户管理实例_第8张图片\"

          1.3 重命名用户

          rename user \'旧用户名\'@\'旧主机名\' to \'新用户名\'@\'新主机名\';
          

          \"MySQL超详细实现用户管理实例_第9张图片\"

          \"MySQL超详细实现用户管理实例_第10张图片\"

          1.4 删除用户

          drop user \'用户名\'@\'主机名\';
          

          \"MySQL超详细实现用户管理实例_第11张图片\"

          1.5 修改用户密码

          1.修改当前的用户密码

          set password = password(\'新密码\')
          

          \"MySQL超详细实现用户管理实例_第12张图片\"

          2.修改其他用户密码

          set password for \'用户名\'@\'主机名\' = password(\'新密码\');

          普通用户是无法修改其他用户密码的

          \"MySQL超详细实现用户管理实例_第13张图片\"

          \"MySQL超详细实现用户管理实例_第14张图片\"

          1.6 忘记密码怎么办

          vim /etc/my.cnf   #修改mysql配置文件
          [mysqld]
          ......
          skip-grant-tables   #在mysqld模块下添加该配置
          wq保存退出
          systemctl restart mysqld   #重启mysql服务
          mysql   #mysql直接登录
          update mysql.user set authentication_string = password(\'新密码\') where User=\'root\';
          flush privileges;
          退出重新登陆
          切记:修改完后一定将配置文件的skip-grant-tables注释或者删掉,不然再执行一次重启数据库,还是可以无密码登录,很危险

          \"MySQL超详细实现用户管理实例_第15张图片\"

          \"MySQL超详细实现用户管理实例_第16张图片\"

          \"MySQL超详细实现用户管理实例_第17张图片\"

          \"MySQL超详细实现用户管理实例_第18张图片\"

          \"MySQL超详细实现用户管理实例_第19张图片\"

          二、授权

          2.1 用户授权

          grant,授权,通常用于root用户授予普通用户一些执行权限,比如select,insert,update。

          grant 权限列表(select|insert|delete|drop|update等等)on 数据库名.表名(*表示所有) to \'用户名\'@\'主机名\' [identified by \'密码\'];
          若授权的用户不存在,mysql会先创建一个用户,然后进行授权操作

          \"MySQL超详细实现用户管理实例_第20张图片\"

          2.2 查看所授予的权限

          show grants for \'用户名\'@\'主机名\';   #查看指定用户的权限
          show grants;   #查看当前用户权限
          

          \"MySQL超详细实现用户管理实例_第21张图片\"

          2.3 撤销权限

          revoke 权限列表 on 库名.表名 from \'用户名\'@\'主机名\';   
          #从用户XXX撤销XX库.XX表的XX操作的权限

          \"MySQL超详细实现用户管理实例_第22张图片\"

          到此这篇关于MySQL超详细实现用户管理实例的文章就介绍到这了,更多相关MySQL用户管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

          ItVuer - 免责声明 - 关于我们 - 联系我们

          本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

          桂ICP备16001015号