• MySQL 用户管理与权限管理


                                                                                                                  MySQL 用户管理与权限管理

    -- 操作环境
    mysql> show variables like 'version';  
    +---------------+--------+
    | Variable_name | Value  |
    +---------------+--------+
    | version       | 5.6.25 |
    +---------------+--------+
    1 row in set (0.04 sec)

    背景知识补充:
    user   表中 host 列的值的意义
    %            匹配所有主机
    localhost    localhost 不会被解析成 IP 地址,直接通过 UNIXsocket 连接
    127.0.0.1    会通过 TCP/IP 协议连接,并且只能在本机访问;
    ::1 ::1      就是兼容支持 ipv6 的,表示同 ipv4 的 127.0.0.1

    一: 用户管理

    1. 查看用户
    mysql> select host,user,password from mysql.user where user like 'andy'; 

    2. 创建数据库用户
    --指定密码创建新用户,%表示任意,即 andy02 可以从任意主机访问数据库  
    mysql> create user 'andy02'@'%' identified by 'oracle'; 
    Query OK, 0 rows affected (0.03 sec)
     
    3. 用户改密码
    mysql> set password for andy02=password('mysql');
    mysql> flush privileges;

    4.删除用户
    --查看当前系统中已存在的用户  
    mysql> select user,host,Password from mysql.user;  
    --使用drop user命令删除用户  
    mysql> drop user 'andy02'@'%';    注意:如果不指定 @'%' ,默认缺省,则删除的是 '%' 。
    mysql> select user,host,Password from mysql.user where user like 'andy%'; 
    Empty set (0.00 sec)  

    5. 重命名帐户
    --rename user命令  
    mysql> rename user 'andy02'@'%' to 'andy01'@'%'; 
    Query OK, 0 rows affected (0.00 sec)
    --检查  
    mysql> select user,host,Password from mysql.user where user like 'andy%';  

    二:权限管理

    注意:mysql的权限相对于oracle而言,相对简单,而且也没有涉及到角色方面的定义与配置 

    --grant命令语法 

    1. 权限种类  
    (这里直接查看,root账户所有的权限)

    mysql> select * from mysql.user where user='root' and host='%'G;
    *************************** 1. row ***************************
                      Host: %
                      User: root
                  Password: *2447D497B9A6A15F2776055CB2D1E9F86758182F
               Select_priv: Y
               Insert_priv: Y
               Update_priv: Y
               Delete_priv: Y
               Create_priv: Y
                 Drop_priv: Y
               Reload_priv: Y
             Shutdown_priv: Y
              Process_priv: Y
                 File_priv: Y
                Grant_priv: Y
           References_priv: Y
                Index_priv: Y
                Alter_priv: Y
              Show_db_priv: Y
                Super_priv: Y
     Create_tmp_table_priv: Y
          Lock_tables_priv: Y
              Execute_priv: Y
           Repl_slave_priv: Y
          Repl_client_priv: Y
          Create_view_priv: Y
            Show_view_priv: Y
       Create_routine_priv: Y
        Alter_routine_priv: Y
          Create_user_priv: Y
                Event_priv: Y
              Trigger_priv: Y
    Create_tablespace_priv: Y
                  ssl_type: 
                ssl_cipher: 
               x509_issuer: 
              x509_subject: 
             max_questions: 0
               max_updates: 0
           max_connections: 0
      max_user_connections: 0
                    plugin: mysql_native_password
     authentication_string: 
          password_expired: N
    1 row in set (0.00 sec)

    2. 权限存放

    MySQL 服务器通过 MySQL 权限表来控制用户对数据库的访问,MySQL 权限表存放在 mysql 数据库里,由 mysql_install_db 脚本初
    始化。这些 MySQL 权限表分别 user,db,table_priv,columns_priv 和 host。

    user 权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
    db 权限表:记录各个帐号在各个数据库上的操作权限。
    table_priv 权限表:记录数据表级的操作权限。
    columns_priv 权限表:记录数据列级的操作权限。
    host 权限表:配合 db 权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受 GRANT 和 REVOKE 语句的影响。

    3. 权限范围 priv_level: 
        *
      | *.*
      | db_name.*
      | db_name.tbl_name
      | tbl_name
      | db_name.routine_name

    4. 授权
    mysql>grant all privileges on *.* to 'andy01'@'%';    (--WITH GRANT OPTION 是否传递,默认为不传递)
    mysql>flush privileges;  

    5. 查看当前用户的权限
    mysql> show grants;

    6. 查看指定用户的权限

    mysql> show grants for 'andy01'@'%'; 

    -- revoke 收回权限

    撤销与授权的权限方式基本类似,这里不做讨论。

  • 相关阅读:
    Python : locals and globals
    windows下替代SSH,Xshell软件的mobaxterm
    python上下文管理协议
    samtools flagstat
    linux和普通文本的换行问题
    使用plenv安装perl,并使其支持多线程
    PHP动态图像处理
    PHP常用功能模块
    在vim中使用zencoding/Emmet
    PHP字符串处理与正则表达式
  • 原文地址:https://www.cnblogs.com/andy6/p/6618007.html
Copyright © 2020-2023  润新知