day09-2视图和用户权限( 三 )

  • 回收用户权限
    #基本语法revoke 权限列表 on 库.对象名 from '用户名'@'登录位置';
  • 权限生效指令
    #如果权限没有生效,可以执行下面命令#基本语法flush privileges;
  • 练习
    1. 创建一个用户(用户名随意),密码为123,并且只可以从本地登录,不让远程登录mysql
    2. 创建testdb库和表news,要求:使用root用户创建
    3. 给用户分配查看news表和添加数据的权限
    4. 测试看看用户是否只有这几个权限
    5. 修改密码为abc,要求使用root用户完成
    6. 重新登录
    7. 回收新用户的权限
    8. 使用root用户删除你的用户
    root用户:
    -- 演示用户权限的管理-- 1. 创建一个用户(用户名随意),密码为123,并且只可以从本地登录,不让远程登录mysqlCREATE USER 'olien'@'localhost' IDENTIFIED BY '123'; -- 2. 创建testdb库和表news,要求:使用root用户创建-- 使用root用户创建库和表CREATE DATABASE testdb;CREATE TABLE news( id INT , content VARCHAR(32))-- 添加一条测试数据INSERT INTO news VALUES(100,'北京新闻');-- 3. 给用户分配查看news表和添加数据的权限-- 4. 测试看看用户是否只有这几个权限GRANT SELECT,INSERT ON testdb.news TO 'olien'@'localhost';-- 5. 修改olien用户的密码为abc,要求使用root用户完成SET PASSWORD FOR'olien'@'localhost' = PASSWORD('abc');-- 6. 重新登录-- 7.回收新用户的权限REVOKE SELECT,INSERT ON testdb.news FROM 'olien'@'localhost';-- 8. 使用root用户删除你的用户DROP USER 'olien'@'localhost';新创建的用户:
    -- 在默认情况下,olien用户只能看到一个默认的系统数据库SELECT * FROM news;INSERT INTO news VALUES(200,'上海新闻');-- 测试看看用户是否只有这几个权限-- 不能进行没有授权的操作,如:updateUPDATE news SET content ='广州新闻' WHERE id = 100; -- 错误,提示没有权限2.3Mysql管理细节细节说明:
    1. 在创建用户的时候,如果不指定host,则默认为%,%表示所有的IP都有连接权限。如create user xxx;
    2. 也可以这样指定:create user 'xxx'@'192.168.1.%' ,表示xxx用户在192.168.1.*的ip地址都可以登录mysql
    3. 在删除用户时,如果host不是%,需要明确指定'用户'@'host值'
    例子
    -- 细节说明:-- 1. 在创建用户的时候,如果不指定host,则默认为%,%表示所有的IP都有连接权限.如create user xxx;CREATE USER 'jack';SELECT `host`,`user` FROM mysql.user;-- 2. 也可以这样指定:create user 'xxx'@'192.168.1.%'-- 表示xxx用户在192.168.1.*的ip地址都可以登录mysqlCREATE USER 'smith'@'192.168.1.%' -- 3. 在删除用户时,如果host不是%,需要明确指定'用户'@'host值'DROP USER jack; -- 默认就是 drop user 'jack'@'%'DROP USER smith@'192.168.1.%'

    经验总结扩展阅读