mysql用户管理
  TEZNKK3IfmPf 2023年11月13日 53 0

mysql用户管理

其中user表的重要字段说明:

1. host: 允许登录的"位置”, localhost表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100

2. user: 用户名;

3. authentication string:密码,是通过mysql的password()函数加密之后的密码。

1.1 创建用户  808

create user  '用户名' @'  允许登录位置'  identified by  '密码'

说明:创建用户,同时指定密码

mysql用户管理

1.2 删除用户

drop user  '用户名' @'  允许登录位置

1.1和1.2代码在E:\java学习\初级\course165\db_

user_manager
#mysql用户管理  808
-- 原因:当我们做项目开发时,可以根据不同的开发人员,赋给他相应的Mysql操作权限
-- 所以Mysql数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供人员使用

-- 创建新的用户
-- 解读'hsp_edu'@'localhost'表示用户的完整信息,'hsp_edu'用户名 'localhost'登陆的ip
-- '123546'代表密码(存放mysql.user表时,是经过password('123456')加密后的密码)
CREATE USER 'hsp_edu'@'localhost' IDENTIFIED BY '123456'
SELECT PASSWORD('123456')-- 查新加密后的 *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
-- 查询一下mysql.user表主要字段
SELECT `host`,`user`,authentication_string
	FROM mysql.user

-- 删除用户
DROP USER 'hsp_edu'@'localhost'

1.3 用户修改密码  808  看视频演示一下就行了

修改自己的密码: 

set password = password('密码');

修改他人的密码(需要有修改用户密码权限) :

set password for   '用户名' @'登录位置' = password('密码');

2. mysql 中的权限  809

mysql用户管理

3. 给用户授权

3.1 基本语法:

grant  权限列表  on  库.对象名  to   '用户名'@' 登录位置'  [identified by  '密码' ]

说明:

1,权限列表,多个权限用逗号分开

grant select on ....

grant select, delete, create on ....

grant all [privileges] on ....       //表示赋予该用户在该对象.上的所有权限

2.特别说明

 * *  : 代表本系统中的所有数据库的所有对象(表,视图,存储过程)

 . *   : 表示某个数据库中的所有数据对象(表,视图,存储过程等)

3, identified by可以省略,也可以写出,

(1)如果用户存在,就是修改该用户的密码。

(2)如果该用户不存在,就是创建该用户!

3.2 回收用户授权  809

基本语法:

revoke  权限列  on  库.对象名  from   '用户名''@''登录位置';

3.3 权限生效指令  809

如果权限没有生效,可以执行下面命令.

基本语法:

FLUSH PRIVILEGES;

3.4 练习题  809

1.创建一个用户(你的名字,拼音),密码123, 并且只可以从本地登录,不让远程登录mysql

2.创建库和表testdb下的news表, 要求:使用root用户创建

3.给用户分配查看news表和添加数据的权限

4.测试看看用户是否只有这几个权限

5. 修改密码为abc ,要求:使用root用户完成

6.重新登录

7.使用root用户删除你的用户,演示回收权限

代码在E:\java学习\初级\course165\db_

grand---在root用户
#演示用户权限的管理  809
-- 1.创建一个用户(你的名字,拼音),密码123, 并且只可以从本地登录,不让远程登录mysql
CREATE USER 'shunping'@'localhost' IDENTIFIED BY'123'

-- 2.创建库和表testdb下的news表, 要求:使用root用户创建
CREATE DATABASE testdb
CREATE TABLE news(
	id INT,
	comtent VARCHAR(32));
-- 添加一些数据
INSERT INTO news VALUES(100,'北京新闻');
SELECT *FROM news

-- 3.给用户分配查看news表和添加数据的权限
GRANT SELECT,INSERT
	ON testdb.news
	TO 'shunping'@'localhost'
-- 可以增加 update 权限
GRANT UPDATE
	ON testdb.news
	TO 'shunping'@'localhost'

-- 5. 修改密码为abc ,要求:使用root用户完成
SET PASSWORD FOR 'shunping'@'localhost' = PASSWORD('abc');

-- 6.重新登录


-- 演示回收shunping用户在teatdb表的所有权限
REVOKE SELECT,UPDATE,INSERT ON testdb.news FROM 'shunping'@'localhost'
-- 或者这样写
REVOKE ALL ON testdb.news FROM 'shunping'@'localhost'

-- 7.使用root用户删除你的用户,
DROP USER 'shunping'@'localhost'
grant2----在shunping用户
-- 这里在默认情况下,shunping用户只能看见一个默认的系统数据库  809

SELECT *FROM news
INSERT INTO news VALUES(200,'上海新闻');

-- 试试能否修改
UPDATE news 
	SET content = '成都新闻'
	WHERE id = 100  #不行没有权限
-- 给权限后可以了
UPDATE news 
	SET comtent = '成都新闻'
	WHERE id = 100

4. 细节说明  810

1.在创建用户的时候,如果不指定Host,则为% , %表示表示所有IP都有连接权限

create user xxx;

2.你也可以这样指定

create user  'xxx' @'192.168.1.%' 表示xxx用户在192.168.1.*的ip可以登录mysql

3.在删除用户的时候,如果host不是%, 需要明确指定  '用户'@'host值'

代码在E:\java学习\初级\course165\db_

user_manager

-- 用户管理的细节说明  810
-- 1.在创建用户的时候,如果不指定Host,则为% , %表示表示所有IP都有连接权限
-- create user xxx;
CREATE USER jack-- 如果不指定Host,则为% , %表示表示所有IP都有连接权限

SELECT `host`,`user`
	FROM mysql.user

-- 2.你也可以这样指定
-- create user  'xxx' @'192.168.1.%' 表示xxx用户在192.168.1.*的ip可以登录mysql
CREATE USER  'smith' @'192.168.1.%'-- 只要是192.168.1.%这一段的ip都可以登录

-- 3.在删除用户的时候,如果host不是%, 需要明确指定  '用户'@'host值'
DROP USER jack-- 默认就是 DROP USER 'jack'@'%
DROP USER 'smith'@'192.168.1.%'

SELECT `host`,`user`
	FROM mysql.user
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
TEZNKK3IfmPf