================================
©Copyright 蕃薯耀 2021-12-31
一、root用户授权
root用户授权,用于指定IP用户登录root用户,方便管理
1、创建指定IP(如:192.168.1.100)远程登录的root用户,并设置密码
CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY '密码';
2、root用户指定IP授权,授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
WITH GRANT OPTION:表示该用户可以将自己拥有的权限授权给别人
授权命令:
GRANT privileges ON databasename.tablename TO 'username'@'host';
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
3、刷新权限
FLUSH PRIVILEGES;
二、创建appUser应用程序用户,并授权
1、创建appUser,并允许本地登录
CREATE USER 'appUser'@'localhost' IDENTIFIED BY '密码';
2、创建appUser,允许应用程序服务器登录
CREATE USER 'appUser'@'192.168.2.200' IDENTIFIED BY '密码';
3、创建appUser,允许指定IP用户(192.168.1.100)登录
CREATE USER 'appUser'@'192.168.1.100' IDENTIFIED BY '密码';
4、appUser授权
(正式环境没有drop权限),报错时:记得先创建数据库和表
GRANT ALTER,CREATE,SELECT,INSERT,UPDATE,DELETE,
CREATE ROUTINE,ALTER ROUTINE,EXECUTE,INDEX,CREATE VIEW,SHOW VIEW,REFERENCES
ON 数据库名称.* TO 'appUser';
5、刷新权限
FLUSH PRIVILEGES;
三、创建readUser只读用户,并授权
1、创建readUser用户,并设置密码,允许所有地方登录
CREATE USER 'readUser'@'%' IDENTIFIED BY '密码';
2、授权,授予查询表、查询视图的权限
GRANT SELECT,SHOW VIEW ON 数据库名称.* TO 'readUser';
3、刷新权限
FLUSH PRIVILEGES;
四、查看用户的权限
SHOW GRANTS FOR 'root'@'localhost';
SHOW GRANTS FOR 'root'@'192.168.1.100';
SHOW GRANTS FOR 'appUser';
SHOW GRANTS FOR 'readUser'@'%';
五、Mysql查看用户表
use mysql;
select * from user;
六、Mysql数据库权限列表
ALTER: Allows use of ALTER TABLE.修改表
CREATE: Allows use of CREATE TABLE.创建表
CREATE TEMPORARY TABLES: Allows use of CREATE TEMPORARY TABLE.创建临时表
DROP: Allows use of DROP TABLE.删除表,删除数据表或数据库
SELECT: Allows use of SELECT. 查询
INSERT: Allows use of INSERT. 插入
UPDATE: Allows use of UPDATE. 更新
DELETE: Allows use of DELETE.删除表数据
EXECUTE: Allows the user to run stored routines. 执行存储过程
INDEX: Allows use of CREATE INDEX and DROP INDEX.创建和删除索引
CREATE VIEW: Allows use of CREATE VIEW.创建视图
SHOW VIEW: Allows use of SHOW CREATE VIEW.查看创建的视图
REFERENCES: 授予用户可以创建一个外键来参照特定数据表的权限。
CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
ALL 或 ALL PRIVILEGES:所有的权限名。(和root一样)
usage: 只允许登录--其它什么也不允许做
七、生产环境数据库授权建议
八、Mysql回收权限,撤销用户权限
回收权限使用:REVOKE
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
示例:
REVOKE SELECT ON *.* FROM 'appUser'@'localhosts';
REVOKE ALTER,CREATE,DROP,SELECT,INSERT,UPDATE,DELETE,
CREATE ROUTINE,ALTER ROUTINE,EXECUTE,INDEX,CREATE VIEW,SHOW VIEW,
REFERENCES,CREATE TEMPORARY TABLES
ON *.* FROM 'appUser';
#刷新权限
FLUSH PRIVILEGES;
九、Mysql删除用户
DROP USER 'username';
DROP USER 'username'@'host';
十、Mysql设置密码,修改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登录用户修改密码可以用:
SET PASSWORD = PASSWORD("newpassword");
root用户给其他用户修改密码,示例:
SET PASSWORD FOR 'appUser'@'localhost' = PASSWORD("123456");