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


day09-2视图和用户权限

文章插图
2.MySQL管理2.1Mysql用户管理
  • MySQL用户
mysql中的用户,都存储在系统数据库mysql中的user表中
day09-2视图和用户权限

文章插图
day09-2视图和用户权限

文章插图
其中user表的重要字段说明:
  1. host:允许登录的“位置“,localhost表示该用户只允许本机登录,也可以指定ip地址,如:192.168.1.100
  2. user:用户名
  3. authentication_string:密码,是通过mysql的password()函数加密之后的密码 。
  • 创建用户
create user '用户名'@'允许登录的位置' identified by '密码' -- 创建用户,同时指定密码
  • 删除用户
drop user '用户名'@'允许登录的位置';
例子
-- mysql用户管理-- 原因:当我们做项目开发时 , 可以根据不同的开发人员,赋给他们相应的操作权限-- 所以,mysql数据库管理人员(root),根据需要创建不同的用户 , 赋给相应的权限,供人员使用-- 1.创建新用户-- 1.1 'liyuelian'@'localhost' 表示用户的完整信息--'liyuelian' 用户名'localhost' 登录ip-- 1.2 123456 为密码,在mysql表存放的是password函数加密过后的密码--*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9CREATE USER 'liyuelian'@'localhost' IDENTIFIED BY '123456';SELECT `host`,`user`,authentication_string FROM mysql.user;-- 2.删除用户DROP USER 'liyuelian'@'localhost';-- 3.登录不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和数据对象(表,视图,触发器)都不一样
day09-2视图和用户权限

文章插图
  • 用户修改密码
-- 修改自己的密码set password = password('密码');-- 修改他人的密码(需要有修改用户密码权限)set password for'用户名'@'登录的位置' = password('密码');
例子
-- 修改本用户密码SET PASSWORD= PASSWORD('abcdef');-- 修改他人的密码(需要有修改用户密码权限)SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');-- 错误,提示权限不够-- 切换到root用户,修改一般用户的密码SET PASSWORD FOR 'olien'@'localhost' = PASSWORD('123456');-- 成功,root用户权限很高2.2Mysql权限管理
  • Mysql中的权限

day09-2视图和用户权限

文章插图
  • 给用户授权
    # 基本语法:grant 权限列表 on 库.对象名 to '用户名'@'登录位置' [identified by '密码']#说明:# 1. 权限列表 , 多个权限用逗号分开#如:grant select on....#grant select ,delete,create on....#2. 特别说明#*.*:表示本系统中的所有数据库的所有对象(表 , 视图,存储过程)#库.*: 表示某个数据库中的所有数据对象(表,视图,存储过程)# 3. identified by可以省略 , 也可以写出# (1)如果用户存在,就是修改该用户的密码# (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';

推荐阅读