• SQL语句开发之常见的DCL


    初始SQL

    • 什么是SQL:一种描述性语言
    • SQL语言的作用:对存储在RDBMS中的数据进行增删改查等操作
    • 常用的SQL语言的种类:DCL(数据库管理类语言)、DDL(数据定义类语言)、DML(数据操作语句)、TCL(事务控制类语言)

    访问权限

    DCL(Data Control Language)

    • 简历数据库账号 :create user
    • 对用户授权:grant
    • 收回用户权限:revoke

    任务一:建立程序使用的数据库账号

    xsZBW4

    create user mc_class@'172.16.31.%' identified with 'mysql_native_password' by '123456' with max_user_connections 1;
    

    测试案例:测试用户最大连接数量为1

    mysql -umc_class -p -h172.16.31.135
    

    tNknwS

    新开窗口,继续创建连接.直接发现报错信息。max_user-connections 当前设置值为1

    bthJ54

    任务二:给账号授权

    • MySQL的常见权限
    权限名称 说明
    Insert 向表中插入数据的权限
    Delete 删除表中数据的权限
    update 修改表中数据的权限
    select 查询表中数据的权限
    execute 执行存储过程的权限

    PbWk10

    J7XeqN

    举个栗子

    # 给用户mc_class授权mysql.user表上的user和host列的查询权限
    grant select(user,host) on mysql.user to mc_class@'192.168.1.%';
    # 给用户mc_class授予mysql.user表上所有列的查询权限
    grant select on mysql.user to mc_class@'192.168.1.%';
    # 给用户mc_class授权mysql库下所有表对象的查询权限
    grant select on mysql.* to mc_class@'192.168.1.%';
    #给用户mc_class授权mysql库下所有表对象的查询/更新/删除权限
    grant select,update,delete on mysql.* to mc_class@'192.168.1.%';
    

    GRANT命令的注意事项

    • 使用grant授权的数据库账号必须存在
    select user,host from mysql.user;
    

    dM3jKL

    # 192.168.32.%这个网段在授权列表中并不存在,于是直接报错
    grant select on mysql.user to mc_class@'192.168.32.%';
    

    CJgs1V

    • 用户使用grant命令授权必须具有grant option的权限
    • 获取命令帮助 h grant

    任务三:回收用户权限

    6uE655

    • 查看某用户授予的权限信息列表
    show grants for mc_class@'172.16.31.%';
    

    g11I2b

    • 授予某用户对于某表下的某种权限
    # 授予mc_class用户mysql库下所有表的查找/删除/增加/更新命令
    grant select,delete,insert,update on mysql.* to mc_class@'172.16.31.%'
    

    XPrTu4

    • 登录授权账号查看权限信息

    ztYxQm

    • 回收某用户对于某表下的某种权限
    # 回收mc_class删除/增加/更新权限,仅保留查询权限
    revoke delete,insert,update on mysql.* from mc_class@'172.16.31.%'
    

    ckNT5R

  • 相关阅读:
    Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题
    Bzoj 4034: [HAOI2015]T2 树链剖分,子树问题,dfs序
    Bzoj 1984: 月下“毛景树” 树链剖分
    面试题14:调整数组顺序使奇数位于偶数前面
    面试题13:在O(1)时间删除链表结点
    面试题12:打印1到最大的n位数
    面试题11:数值的整数次方
    面试题10:二进制中1的个数
    [找程序员代写推荐]不要说你工作多久,多厉害!这些题不从网上找答案,你能做出来吗???
    [原]Android开发技巧--ListView
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/13162284.html
Copyright © 2020-2023  润新知