• MySQL8.0 + 角色管理


    MySQL 角色管理

    创建角色

    create role test_role@'%';
    

    授权角色

    grant select,insert,update,delete on testdb.* to test_user;
    

    将角色分配给用户

    create user 'test'@'192.168.1.1' identified by '';
    create user 'test1'@'192.168.1.2' identified by '';
    grant test_user to 'test'@'192.168.1.1','test1'@'192.168.1.2';
    

    激活角色

    SET DEFAULT ROLE test_user to 'test1'@'192.168.1.2';
    SELECT current_role();
    

    这种"激活"角色的方法可以让用户拥有角色所拥有的权限,但是不难看出来,每次给新建用户绑定一个角色,在新建用户登录之前,都得将该用户激活一下,从操作上看不是特别方便,如何让所有的指定的角色都即时生效呢?

    MySQL提供了一个系统参数来解决这个问题,该参数是:

    mysql> show variables like '%activate%';
    +-----------------------------+-------+
    | Variable_name               | Value |
    +-----------------------------+-------+
    | activate_all_roles_on_login | OFF   |
    +-----------------------------+-------+
    1 row in set (0.00 sec)
     
     
    # 该参数是默认关闭的,直接打开即可。
    set global activate_all_roles_on_login=on;
    # 持久化
    sed -i  '79iactivate_all_roles_on_login                 = on' /data/db/mysql3306/my.cnf
     
    # mysql8.0 永久生效,并写入 mysql 的 datadir 的  mysqld-auto.cnf 文件中
    set persist activate_all_roles_on_login=on;
    

    撤销角色

    REVOKE INSERT, UPDATE, DELETE ON testdb.* FROM test_user;
    

    删除角色

    DROP ROLE test_user;
    

  • 相关阅读:
    Linux里的2>&1究竟是什么
    表锁操作
    日志rsyslog
    计划任务at cron
    rpm包管理和源码包管理
    自建yum源(只演示nginx服务,其它都一样)
    软件包管理yum
    文件打包及压缩
    查找文件which locate find
    lsof恢复进程打开的文件
  • 原文地址:https://www.cnblogs.com/carry00/p/14354916.html
Copyright © 2020-2023  润新知