MySQL 权限管理 用户管理

时间:2021-03-21 21:52:19

我使用的是 MariaDB 数据库

查看 MySQL 所有用户:

select distinct concat('User: \'',user, '\'@\'', host, '\'') as query from mysql.user;

创建用户

创建本地用户

 CREATE USER 'USER'@'localhost' IDENTIFIED BY 'PASSWORD'; 

创建网络用户

CREATE USER 'USER'@'%' IDENTIFIED BY 'PASSWORD'; 

授权

授予某个用户有访问整个数据库的所有权限(示例)

GRANT ALL ON *.* TO 'USER'@'%'; 

授予某个用户有访问某个数据库的某些权限(示例)

GRANT SELECT ON DBNAME.* TO 'USER'@'%';

更新授权表

flush privileges;

mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,

还有一种方法,就是重新启动mysql服务器,来使新设置生效。­

查看某个用户的授权情况

SHOW GRANTS FOR 'USER'@'%';

撤销某个用户的授权

REVOKE privilegexxx ON databasenamexxx.tablenamexxx FROM 'usernamexxx'@'hostxxx';

(示例)

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

设置与更改用户密码

SET PASSWORD FOR 'usernamexxx'@'hostxxx' = PASSWORD('newpasswordxxx');

如果是当前登陆用户用:

SET PASSWORD = PASSWORD("newpasswordxxx");