MySQL 权限管理 用户管理
我使用的是 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");