MySQL用户管理及权限调整

  • A+
所属分类:MySQL

MySQL用户管理及权限调整
账户权限管理

    用户账号:'user'@'host'
        user: 用户名
        host: 允许用户通过哪些主机远程连接mysqld服务
            IP、网络地址、主机名、通配符(%和_)
    创建用户:
        CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
    查看当前用户:
        SELECT user();
    查看用户:
        SELECT User,Host,Password FROM user;
    删除用户:
        DROP USER 'username'@'host';
        示例:删除默认的空用户
            DROP USER ''@'localhost';
    更改口令:
        1)SET PASSWORD FOR 'user'@'host' = PASSWORD(‘password');
        2) UPDATE user SET password=PASSWORD('magedu') WHERE User='root' ;
        注意:上面修改表的命令不会马上生效,需执行FLUSH PRIVILEGES生效
        3) /usr/local/mysql/bin/mysqladmin -u root –poldpassword password ‘newpassword‘

授权管理

    权限级别:管理权限、数据库、表、字段、存储例程
        •Help GRANT
        •GRANT priv_type,... ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
        •priv_type: ALL [PRIVILEGES]
        •db_name.tb_name:
            *.*: 所有库的所表
            db_name.*: 指定库的所有表
            db_name.tb_name: 指定库的指定表
            db_name.routine_name:指定库的存储过程和函数
    示例:
        GRANT SELECT,DELETE on testdb.* TO ‘testuser’@‘%’IDENTIFIED BY ‘testpass‘;
    查看指定用户获得的授权:
        Help SHOW GRANTS
        SHOW GRANTS FOR 'user'@'host';
        SHOW GRANTS FOR CURRENT_USER[()];
    回收授权:
        REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host
        示例:
            REVOKE DELETE ON testdb.* FROM 'testuser'@'%‘
    注意:
        MariaDB服务进程启动时会读取mysql库中所有授权表至内存
        (1) GRANT或REVOKE等执行权限操作会保存于系统表中,MariaDB的服务进程通常会自动重读授权表,使之生效
        (2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表:mysql> FLUSH PRIVILEGES;
avatar

发表评论

您必须登录才能发表评论!