zoukankan      html  css  js  c++  java
  • MySQL之用户管理

    用户管理

    主要为了控制权限,让不同开发者,仅能操作属于自己的业务范围内的数据

    创建mysql账户

    账户中涉及的三个数据

    1. 账户名、密码、ip地址
      • ip是用于限制某个账户只能在哪个机器上登录
    ------------------------第一种方式---------------------------
    # 创建user语法:
    create user 用户名@客户端主机地址或网段  identified by 密码
    例如:
    create user "plf"@"localhost" identified by "123456";
    查看创建用户
    select user,password,host from mysql.user;
    
    mysql.user表	与用户相关信息
    mysql.db表	用户的数据库权限信息
    mysql.tables_priv表	用户的表权限
    columns_priv 表	用户的字段权限
    
    # 授权用户语法:
    grant [权限1,...权限n|all] on *.* to 用户名@客户端主机地址或网段;
    例如:
    grant all on *.*  to  "plf"@localhost; 
    刷新权限
    flush privileges;
    
    ------------------------第二种方式---------------------------
    grant [权限1,...权限n|all] on *.* to 用户名@主机地址 identified by 密码;
    刷新权限
    flush privileges;
    
    
    
    
    
    
    # 测试
    都在root权限下查看
    create database day42 charset utf8;
    use day42;
    create table day42.a(id int); 
    grant all on day42.* to lt@localhost identified by "123456";
    flush privileges;
    select user,password,host from mysql.user;
    select user,host from mysql.db;
    select user,host from mysql.tables_priv;
    select user,host from mysql.columns_priv;
    
    
    
    # 收回权限
    ----------------------第1种方式:直接删除用户---------------------
    drop user 用户名@主机
    
    ----------------------第2种方式:回收权限---------------------
    revoke all on *.*  from 用户名@主机名;
    
    # 问题?
    如果授权了一个all权限的用户A,然后利用A去创建一个新用户并授权all,能够行的通?
    答案是行不通的。
    可以通过root用户的如下sql,创建A用户。然后A用户就可以创建其他用户了
    grant all on day42.* to lt@localhost identified by "123456" with grant option;
    
  • 相关阅读:
    CODE
    JS中如何进行对象的深拷贝
    js数组操作---改变原数组和不改变原数组的方法整理
    echarts做双柱图
    如何在react中使用OrgChart?
    如何让背景透明?
    如何使用css选择器隐藏滚动条?
    input 修改placeholder中颜色和字体大小
    在input、textarea 标签的placeholder中实现换行的方法
    React Hooks异步操作防踩坑指南
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11201663.html
Copyright © 2011-2022 走看看