MySql用户管理

前言

MySQL数据库中,root 用户为管理员用户,该用户拥有超级权限,可以操作整个数据库服务器。但是在日常使用中,我们不只是管理员在操作数据库,还有其他人要操作数据库,并且这些人只需要其中的某些权限,因此在日常使用中,我们可以针对不同的角色设定不同的数据库帐号。

一、创建新用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

使用上述命令创建新用户,其中:

  • username 代表用户名称;
  • host 用来指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符 % ,也可以指定 IP 地址;
  • password 代表新用户密码。

二、授权

在默认情况下,新用户的权限为USAGE,该权限很小,只能用于连接数据库和查询information_schema,因此需要给新用户进行授权。

1.权限介绍

权限权限级别权限说明
USAGE数据库新用户默认权限,很小
CREATE数据库、表或者索引创建数据库、表或者索引权限
DROP数据库、表删除数据库、表权限
GRANT OPTION数据库、表或保存的程序赋予权限选项
REFERENCES数据库或表允许创建外键
ALTER更改表,比如添加字段、索引等
DELETE删除数据权限
INDEX索引权限,允许创建和删除索引
INSERT插入权限
SELECT查询权限
UPDATE更新权限
CREATE VIEW视图创建视图权限
SHOW VIEW视图查看视图权限
ALTER ROUTINE存储过程更改存储过程权限
CREATE ROUTINE存储过程创建存储过程
EXECUTE存储过程执行存储过程权限
FILE服务器主机上的文件访问文件访问权限
CREATE TEMPORARY TABLES服务器管理创建临时表权限
LOCK TABLES服务器管理锁表权限
CREATE USER服务器管理创建用户权限
RELOAD服务器管理执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限
PROCESS服务器管理查看进程权限
REPLICATION CLIENT服务器管理复制权限
REPLICATION SLAVE服务器管理复制权限
SHOW DATABASES服务器管理查看数据库权限
SHUTDOWN服务器管理关闭数据库权限
SUPER服务器管理执行kill线程权限

2.授权

GRANT privileges ON databasename.tablename TO 'username'@'host';

使用上述语句来进行授权,其中:

  • privileges:代表所授予的权限,如 SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
  • databasename:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
  • username:权限授予的用户名称
  • host:用户主机

3.注意

一般只有root用户才有权限进行权限授予,如果想让其他用户也可以进行授权,可以为其授予 GRANT OPTION 权限:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三、重置与更改用户密码

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
-- 例子
SET PASSWORD FOR 'ZhangSan'@'%' = PASSWORD("123456");

四、撤销用户权限

REVOKE privilege ON databasename.tablename FROM 'username'@'host';
-- 例子
REVOKE SELECT ON *.* FROM 'ZhangSan'@'%';

注意:在撤销权限时,使用的命令最好和授权时的命令对应起来,否则将不能撤销成功。

如:授权是使用语句为

GRANT SELECT ON School.Student TO 'ZhangSan'@'%';

如果撤销授权语句为

REVOKE SELECT ON *.* FROM 'ZhangSan'@'%';

则无法撤销成功,推荐使用

REVOKE SELECT ON School.Student FROM 'ZhangSan'@'%';

五、删除用户

DROP USER 'username'@'host';
-- 例子
DROP USER 'ZhangSan'@'%';

六、注意

在授予、更改或者撤销权限后建议刷新一下权限:

flush-privileges;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值