一、权限管理
我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。那么这时就需要我们来简单了解一下:
如何创建用户和密码
给当前的用户授权
移除当前用户的权限
1、创建用户
1、进入mysql库
show databases; #查看数据库
use mysql; #使用mysql库
select database(); #查看当前使用的库
2、创建用户
语法:
CREATE USER ‘user_name’@‘host’ IDENTIFIED BY ‘password’;
user_name:要创建用户的名字。
host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
password:新创建用户的登陆数据库密码,如果没密码可以不写。
举例:
create user 'ceshi'@'localhost' identified by '1';
# 创建用户名为ceshi host为localhost 密码为1
用户的增删改
#1.删除用户
drop user '用户名'@'IP地址';
#2.修改用户(修改用户可以控制用户是否能远程连接)
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
#3.修改密码
set password for '用户名'@'IP地址'=Password('新密码');
3、给用户赋权限
语法:
命令:GRANT privileges ON databasename.tablename TO ‘username’@‘host’;
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
例子:
GRANT SELECT, INSERT ON test.user TO ‘pig’@’%’;
GRANT ALL ON . TO ‘pig’@’%’;
GRANT ALL ON maindataplus.* TO ‘pig’@’%’;
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO ‘username’@‘host’ WITH GRANT OPTION;
例子:
grant all on *.* to 'ceshi'@'localhost';
# 赋予用户cehsi@localhost 所有库所有表的所有权限
注意进行修改或者赋权之后执行FLUSH PRIVILEGES;
FLUSH PRIVILEGES; #刷新权限
4、修改密码
alter user "root"@"localhost" identified by "新密码";
#已验证可用
其他方法可参考Mysql—修改用户密码(重置密码)
参考资料:
1、Docker 部署 Mysql8.0
2、MySQL创建用户与授权
3、MySQL创建用户与授权
4、Mysql—修改用户密码(重置密码)