走向DBA之基础管理(用户、权限)

作者: 国王12 | 来源:发表于2019-06-15 19:35 被阅读0次

    一、用户管理

    1.用户作用:

    登录,管理数据库对象(库、表..)

    2.用户定义:

    用户名@'白名单(允许登录的IP段)'

    示例用户:

    oldboy@'10.0.0.51'

    用户名oldboy,允许10.0.0.51地址登录 合在一块才算一个完成的用户

    白名单支持的格式:

    oldboy@'10.0.0.%' 
    oldboy@'10.0.0.5%'
    oldboy@'10.0.0.51'
    oldboy@'10.0.0.0/255.255.254.0'
    oldboy@'%'
    oldboy@'oldboy.com'
    oldboy@'localhost'
    oldboy@'db01'
    

    常用白名单格式:

    oldboy@'10.0.0.%'                                           %代表搜友
    oldboy@'10.0.0.5%'                                          50-59网段
    oldboy@10.0.0.0/'255.255.254.0'                             限制网关
    oldboy@'localhost                                           仅本地登录
    

    小试牛刀:简单SQL语句(用户相关)

    1.创建一个abc用户,允许10网段登录,密码为123456

    create user 'abc'@'10.0.0.%' identified by '123456';
    注意:abc可以不加单引号,但是有时候用户名敏感,无法创建时,必须加上单引号
    

    2.查看所有用户

    select user,host,authentication_string from mysql.user;
    

    3.删除abc用户

    drop user abc@'10.0.0.%';
    注意:删除的用户和白名单必须对应
    
    (悄悄的再把abc用户给创建回来,因为接下来还要用到)

    4.修改abc用户登录mysql密码为123

    数据库里修改:

    alter user abc@'10.0.0.%' identified by '123';
    

    命令行修改:

    mysqladmin -uabc -p123456 password '123'
                用户   老密码           新密码
    

    5.有时候修改完用户信息(密码或者权限,然而并不会立马生效,别害怕,刷新到磁盘即可)

    flush privileges;
    

    6.查看用户拥有的权限

    show grants for abc@'10.0.0.%';
    返回结果看不明白?没关系,往下看,我一会会说权限相关,现在知识练习SQL语句
    

    7.回收用户权限

    revoke delete on 库名.* to abc@'10.0.0.%' identified by '123456';
         要回收的权限  针对哪个库,哪个表     用户,密码
    注意:别想着回收权限,我直接重新授权一下权限不是好了吗?告诉你,不行,权限这一块,用户只会把权限叠加,而不会覆盖哦
    

    8.创建king用户白名单为10网段,并同时给与所有权限针对所有库和表,密码123456

    grant all on *.* to king@'10.0.0.%' identified by '123456';
    

    提示:grant命令可以授权,但是如果授权的哪个用户不存在,则会同时创建用户,而create只可以创建用户,不能授权,你可能会想,那我直接使用grant就好了,直接创建用户并同时授权,告诉你:可以的,但仅限于8.0版本以前,8.0版本以后要求必须先创建用户,再授权。

    9.创建一个超级管理员用户(拥有授权其他用户权限的用户)long,其他要求同上

    grant all on *.* to 'long'@'10.0.0.%' identified by '123456' with grant option;
    没错,只多了with grant option参数,但是long这个用户就拥有了超级管理员(root)的权限(即斯可以给其他用户授权)
    

    (写了这么多关于权限的SQL语句,但是对于权限不太了解怎么办?没关系,往下看。)

    二、权限管理

    1.权限作用:控制用户登录之后对mysql对象都可以做些什么操作

    2.权限定义:针对SQL语句的定义

    (注意:搭建mysql时候需要授权所有权限,但是上线的话需要把权限收回,重新授权增删改查权限即可)

    3.客户需要权限有:

    查询     select       SELECT
    插入     insert       INSERT
    更新     update       UPDATE
    删除     delete       DELETE
      大写小写都可以 
    

    更多权限:(ALL代表以下所有权限)

    SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
    老多了,为什么不一一介绍呢?没必要(我也不懂啊),普通客户只需要级别上边增删改查四个权限即可,这些是管理员所具备的
    

    4.权限相关SQL语句小试牛刀:

    1.授权所有权限给abc用户(不等于root权限),针对所有库所有表,白名单10网段所有,密码123456,

    grant all on *.* to abc@'10.0.0.*' identified by '123456';
    

    2.要求同上,多一项可授其他用户权限的权限(等于超级管理员root的权限)

    grant all on *.* to abc@'10.0.0.%' identified by '123456' with grant option;
    

    3.授权,增,删,改,查(四项基本权限)给oldboy用户,其他条件同上

    grant select,insert,update,delete on *.* to oldboy@'10.0.0.%' identified by '123456';
    

    4.查看oldboy用户都拥有什么权限

    show grants for oldboy@'10.0.0.%';
    +--------------------------------------------------------------------+
    | Grants for oldboy@10.0.0.%                                         |
    +--------------------------------------------------------------------+
    | GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'oldboy'@'10.0.0.%' |  此处显示用户的权限
    +--------------------------------------------------------------------+
    1 row in set (0.00 sec)
    

    5.收回oldboy删除的权限

    (注意:前文已经说过,只能使用收回权限的SQL语句,不能重新授权,指望覆盖,那是错误的选择)

    revoke delete on *.* from oldboy@'10.0.0.%';
    
    关于库和表说明:
    范围:  库.表
    *.*                         所有库下的所有表
    wordpress.*         wordpress库下的所有表
    wordpress.t1        wordpress库下的第一张表
    

    相关文章

      网友评论

        本文标题:走向DBA之基础管理(用户、权限)

        本文链接:https://www.haomeiwen.com/subject/ayxifctx.html