前言
有没有试过自己创建一个新的用户,然后仅仅赋予他select的权限,只给你看,不给你碰。
心急吃不到热豆腐,猴急猴急的。
用户权限:登峰造极
权限是可以精细到某个库的某个表的某个操作,毕竟如果你是个小白,来了之后一通瞎搞,这怎么说。
我下边的操作总体概述为:
步骤一:人生若只如初见
创建一个名为abc的用户,然后来玩abc这个用户。
CREATE USER 'abc'@localhost IDENTIFIED BY 'abc';
步骤二:何事秋风悲画扇
查看abc用户现有权限,一根毛的权限都没有。
SHOW GRANTS FOR abc@localhost;
步骤三:等闲变却故人心
授予abc用户,legal数据库中所有表,查询的权限。注意on后边是数据库名.*。
GRANT SELECT ON legal.* TO abc@localhost; #
授予权限后,最好刷新一下权限,不然有可能出现权限更新不及时的情况。
FLUSH PRIVILEGES;
查看abc用户现有权限,见下图。
SHOW GRANTS FOR abc@localhost;
测试:
当仅仅给abc一个查询权限时,abc在进行新增,修改,删除行数据及创建数据表等操作时会失败。
步骤四:却道故人心易变
授予abc用户,legal数据库中所有表,增删改查的权限。
GRANT SELECT, INSERT, UPDATE,DELETE ON legal.* TO abc@localhost;
刷新权限.
FLUSH PRIVILEGES;
查看abc用户现有权限。
SHOW GRANTS FOR abc@localhost;
测试:
命令总结:我欲齐天,法力无边
查看当前用户
SELECT USER();
查看当前用户权限
SHOW GRANTS;
查看所有用户
SELECT * FROM mysql.user;
SELECT HOST,USER FROM mysql.user;
创建新用户
CREATE USER 'abc'@localhost IDENTIFIED BY 'abc';
创建用户后,刷新权限
FLUSH PRIVILEGES;
删除用户
DROP USER abc@localhost;
# 授予用户权限。刚创建的新用户没有权限。
# 格式为:grant 权限列表 on 数据库名.数据表名 to ‘用户名’@’主机’ identified by ‘密码’ with grant option;
# 语句尾部with grant option;代表该用户可以授予别人权限。
GRANT SELECT, INSERT, UPDATE,DELETE ON legal.* TO abc@localhost;
GRANT ALL PRIVILEGES ON legal.* TO abc@localhost IDENTIFIED BY 'abc' WITH GRANT OPTION;
刷新权限。
FLUSH PRIVILEGES;
查看现有权限;
SHOW GRANTS FOR abc@localhost;
mysql有哪些权限;
SHOW PRIVILEGES;
回收权限
REVOKE SELECT, INSERT, UPDATE,DELETE ON glaudit.* FROM abc@localhost;
······································································
牙疼的我,大牙牙龈上凸起了一个白白的东西,嘴肿了。哭了