MySQL-DCL语句-用户管理与授权-备忘笔记

DCL-MySQL数据库管理相关

用户管理

相关库: mysql
相关表:user

  • 添加用户

    #通过MySQL自带的DCL语句创建用户
    CREATE USER '用户名'@'主机名' IDENTIFIED BY '用户密码';
    #例: CREATE USER 'admin'@'%' IDENTIFIED BY 'admin'; #创建一个账户为admin,密码为admin,可远程或者本地登录的账户
    
  • 查询用户

    #切换至mysql库
    use mysql;
    #用户查询
    SELECT * FROM user;
    

    字段解析:

    Host 指该用户能在哪些主机中登录(比如: 是否可以远程或者只能本地登录等)。 常用有以下几种值:

    • localhost 只能本地登录到数据库
    • % 可在任意(本地或远程)主机上登录数据库
  • 删除用户

    # 删除用户
    DROP USER '用户名'@'主机名';
    #例: DROP USER 'admin'@'%' #删除一个可在任何位置登录数据的admin账户
    
  • 修改用户密码

    #修改密码: MySQL5.7之前的版本
    UPDATE USER SET PASSWORD=PASSWORD('新密码') WHERE USER='用户名'
    #修改密码: MySQL5.7之后版本: 经测试,貌似没效果
    UPDATE USER SET authentication_string=PASSWORD('新密码') WHERE USER='用户名'
    # 使用DCL语法
    SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
    
  • 密码忘记情况下,修改密码操作如下

    windows下: 
        1. 第一步,停止MySQL服务(需要管理员运行终端)
            net stop [mysql服务名]
        2. 第二步,使用无验证方式启动MySQL服务: 
            mysqld --skip-grant-tables
        3. 第三步,打开新终端窗口,直接输入mysql命令后回车(不需要登录验证的相关参数),便可直接进入至MySQL客户端中。
        4. 第四步,直接使用修改用户密码的语句修改用户密码。
        5. 关闭窗口,手动结束mysqld.exe进程
        6. 重启mysql服务器
    

授权管理

  • 查询权限

    #查询权限
    SHOW GRANTS FOR '用户名'@'主机名';
    
  • 授予权限

    #授予权限
    GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
    #例如: 给已存在的admin用户(任何主机下)添加可查询全部数据库、可操作的全部权限
    GRANT ALL ON *.* TO 'admin'@'%';
    
  • 撤销权限

    #撤销权限
    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
    #注: 之前授权的数据库名.表名需要一致(目前测试是这样)
    

你可能感兴趣的:(MySQL-DCL语句-用户管理与授权-备忘笔记)