• MySQL:DCL(数据控制语言)


    <1> 简介

      MySql默认使用的都是 root 用户,超级管理员,拥有全部的权限。除了root用户以外,我们还可以通 过DCL语言来定义一些权限较小的用户, 分配不同的权限来管理和维护数据库。

    <2> 创建用户

    语法格式

    CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
    参数 说明
    用户名 创建的新用户,登录名称
    主机名 指定该用户在哪个主机上可以登陆,本地用户可用 localhost 如果想让该用户可以 从任意远程主机登陆,可以使用通配符 %
    密码 登录密码

      1) 创建 admin1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123456

    CREATE USER 'admin1'@'localhost' IDENTIFIED BY '123456';

      创建的用户在名字为 mysql的 数据库中的 user表中

        

       2) 创建 admin2 用户可以在任何电脑上登录 mysql 服务器,密码为 123456

    CREATE USER 'admin2'@'%' IDENTIFIED BY '123456';

       % 表示 用户可以在任意电脑登录 mysql服务器.

    <3> 用户授权

    创建好的用户,需要进行授权

    语法格式

    GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';
    参数 说明
    权限 授予用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。 如果要授 予所有的权限则使用 ALL
    ON 用来指定权限针对哪些库和表
    TO 表示将权限赋予某个用户

      1) 给 admin1 用户分配对 db4 数据库中 products 表的 操作权限:查询

    GRANT SELECT ON db4.products TO 'admin1'@'localhost';

      2) 给 admin2 用户分配所有权限,对所有数据库的所有表

    GRANT ALL ON *.* TO 'admin2'@'%';

      3) 使用admin1用户登录数据库 测试权限

      

       4) 发现数据库列表中 只有db4, 表只有 product

      

       5) 执行查询操作

    -- 查询account表
    SELECT * FROM products;

      6) 执行插入操作,发现不允许执行,没有权限 

    -- 向 products 表中插入数据
    -- 不允许执行
    INSERT INTO products VALUES('p010','小鸟伏特加',1000,1,NULL)

    <4>查看权限

    语法格式

    SHOW GRANTS FOR '用户名'@'主机名';

    查看root用户权限

    -- 查看root用户的权限
    SHOW GRANTS FOR 'root'@'localhost';

    GRANT ALL PRIVILEGES 是表示所有权限

    <5>删除用户

    语法格式

    DROP USER '用户名'@'主机名';

    删除 admin1 用户

    -- 删除 admin1 用户
    DROP USER 'admin1'@'localhost';

    <6>查询用户

    选择名为 mysql的数据库, 直接查询 user表即可

    -- 查询用户
    SELECT * FROM USER;
  • 相关阅读:
    使用pull解析XML文件
    使用Pull解析器生成XML文件
    Android下文件访问的权限
    Android之SharedPreference存储数据
    Android之外部存储(SD卡)
    Android的内部存储
    Android数据存储的方式
    点击事件的四种写法
    Context
    EclipseADT编写单元测试代码的步骤
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15024797.html
Copyright © 2020-2023  润新知