Mysql用户管理以及应用实例

本文详细介绍了MySQL数据库的用户管理,包括创建、删除用户,修改密码以及权限的授予和回收。重点讲解了如何使用GRANT和REVOKE语句来控制用户对数据库对象的操作权限,以及FLUSHPRIVILEGES指令的应用实例。
摘要由CSDN通过智能技术生成

 

目录

 

Mysql用户管理

创建用户

删除用户

用户修改密码

实例:

MySQL权限管理

给用户授权

回收用户授权

权限生效指令

实例1:

实例2:

细节说明


Mysql用户管理

mysql中的用户,都存储在系统数据库mysql中user表中

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

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

2. user:用户名;

3. authentication_string:密码,是通过mysql的password0函数加密之后的密码。

创建用户

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

说明:创建用户,同时指定略马

删除用户

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

用户修改密码

修改自己的密码:
set password = password('密码');

修改他人的密码(需要有修改用户路码权限):
set password for '用户名'@"登录位置’ = password('密码');

实例:

创建新用户

create user 'cc'@'localhost' identified by '123456'

查看用户权限

create user 'cc'@'localhost' identified by '123456'

登陆新用户

此时可发现用户cc所能看到的表与拥有最高权限(root)的xc的表不同 

不同的数据库用户,登录到DBMS后,根据相应的权限,可以操作的数据库和数据对象(表,视图,触发器)都不一样

MySQL权限管理

权限意义
ALL (PRIVILEGESI设置除GRANT OPTION之外的所有简单权限
ALTER允许使用ALTER TABLE
ALTER ROUTINE更改或取消已存储的子程序
CREATE允许使用CREATE TABLE
CREATE ROUTINE创建已存储的子程序
CREATE TEMPORARYTABLES允许使用CREATE TEMPORARY TABLE
CREATE USER允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES 
CREATE VIEW允许使用CREATE VIEW
DELETE允许使用DELETE
DROP允许使用DROP TABLE
EXECUTE允许用户运行已存储的子程序
FILE允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE
INDEX允许使用CREATE INDEX和DROP INDEX
INSERT允许使用INSERT
LOCK TABLES允许对您拥有SELECI权限的表使 LOCKTABLES
PROCESS允许使用SHOW FULL PROCESSLIST
REFERENCES未被实施
RELOAD允许使用FLUSH
REPLICATIONCLIENT允许用户询问从属服务器或主服务器的地址
REPLICATION SLAVE用于复制型从属服务器(从主服务器中读取二进制日志事件)
SELECT允许使用SELECT
SHOW DATABASESSHOW DATABASES显示所有数据库
SHOW VIEW允许使用SHOW CREATE VIEW
SHUTDOWN允许使用mysqladmin shutdown
SUPERKILL,PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections
UPDATE允许使用UPDATE
USAGE“无权限”的同义词
GRANT OPTION允许授予权限

给用户授权

基本语法:
grant 权限列表 on 库.对象名 to '用户名’@’登录位置‘【identified by'密码’】

说明:
1. 权限列表,多个权限用运号分开
grant select on.......

grant select, delete, create on ....

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

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

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

3. identified by可以省略,也可以写出.
(1)如果用户存在,就是修改该用户的密码

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

回收用户授权

基本语法:
revoke 权限列表 on库对象名 from '用户名'@'登陆位置'

权限生效指令

如果权限没有生效,可以执行下面命令基本语法:

FLUSH PRIVILEGES;

实例1:

创建数据库test1,并创建表news

create table news(
	id int,
	`name` varchar(32)
);
insert into news
	VALUES(1,'JACK')
SELECT * FROM news

给用户cc参考test1表和select/insert权限

grant select,insert
	ON test1.news
	to 'cc'@'localhost'

select * from news
insert into news 
	VALUES(2,'MIKE')

如图所示,用户cc可以看到test1数据库和news表,并且可以进行select/insert相关操作

实例2:

现在进行数据更新操作

update news set `name` = 'lili'
	where id = 200

如图所示可以看出,用户cc只能进行被授权的操作(select/insert) 

此时在xc用户的视角下观察news表

由图可知,news的数据也进行了改动

修改用户cc的密码为abc

SET PASSWORD FOR 'cc'@'localhost' = PASSWORD('abc')

回收cc用户在test1.news表的全部权限

revoke all on test1.news from 'cc'@'localhost'

revoke select,insert,update on test1.news from 'cc'@'localhost'

此时再次刷新cc用户的视角

可以发现,cc用户已经没有对test1.cc的相关权限

细节说明

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

creat user '用户'

2. 你也可以这样指定

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

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

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值