博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

MySQL 用户 权限管理 按需分配 mysql 权限

 SQL:

-- 其他远程连接的应用用户 按需分配 mysql 权限 
-- select,insert,update,delete 等权限,没有 super 

-- win 使用 mysqld --initialize 命令后创建的 文件夹
-- MySQL 的安装目录下的 data 文件夹,下面的 XXX.err 文件 如DESKTOP-GURKLIR.err

-- centos 启动mysql
systemctl start mysqld
-- 初始密码写入日志
grep 'temporary password' /var/log/mysqld.log 

-- MySQL密码策略状态
select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
-- MySQL登录后使用这个命令查看密码策略 
show variables like 'validate_password%';
-- 可以使用以下命令进行修改
set global validate_password_policy=LOW;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
set global validate_password_length=4;

-- 修改密码
alter user 'root'@'localhost' identified by '满足策略的密码';
-- 按 mysql_native_password 加密方式修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '满足策略的密码';

-- 密码验证策略低要求( 0 或 LOW 代表低级)
set global validate_password_policy=MEDIUM;
-- 密码至少要包含的 小写字母个数 和 大写字母个数
set global validate_password_mixed_case_count=1;
-- 密码至少要包含的 数字个数。
set global validate_password_number_count=1;
-- 密码至少要包含的 特殊字符数
set global validate_password_special_char_count=1;
-- 密码长度
set global validate_password_length=8;
show variables like 'validate%';
-- 查询用户
select Host,User,Grant_priv,Super_priv,password_last_changed,account_locked from user;
select Host,user from mysql.user;

-- mysql 8.0 以上密码策略限制必须要大小写加数字特殊符号,否则会报错
alter user ’root’@’%’ identified by ‘新密码’;
-- 查询权限
show grants for root@'%';
-- 刷新权限
flush privileges

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,
SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, 
SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'admin'@'%';

show grants for canal@'%';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

show grants for root@'%';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- 则只需要将 salve 设定" read_only=1 "模式,即可保证主从同步,又可以实现从库只读。

-- 当然设定了 read_only=1 后,所有的 select 查询操作都是可以正常进行的。

show grants for ytt2@'localhost';

GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost;

-- 动态权限就是对 SUPER 权限的细分。
-- SUPER 权限在未来将会被废弃掉。
-- 现在只想这个用户有 SUPER 的子集,设置变量的权限。
-- 单独赋予用户 两个能设置系统变量的 动态权限,完了把 SUPER 拿掉。 

grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';

revoke super on *.* from ytt2@'localhost'; 

show warnings; 

-- 我们看到这个 WARNINGS 提示 SUPER 已经废弃了。 

-- 原文链接:
-- https://blog.csdn.net/weixin_29576901/article/details/113123016

 

posted @ 2022-08-11 12:04  CHANG_09  阅读(195)  评论(0编辑  收藏  举报