zoukankan      html  css  js  c++  java
  • 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;
    

  • 相关阅读:
    单例模式——C++实现
    单例模式——java实现
    组合模式——java实现
    桥接模式——Java实现
    桥接模式——C++实现
    适配器模式——java实现
    编写一个显示当前时间的jsp页面
    适配器模式——C++实现
    安装配置hadoop1
    Nginx使用教程
  • 原文地址:https://www.cnblogs.com/carry00/p/14354916.html
Copyright © 2011-2022 走看看