MySQL账号管理

blob.png

blob.png

控制开发者权限只给DELETE, INSERT,UPDADE,SELECT,

excute, create routine

不让开发瞎鸡巴搞(我是开发

不给开发更改存储过程权限

线上最小权限

任何变更是dba需要知道

blob.png

load date in file 权限生产环境应该避免掉,包括自己的账号,

为什么要用mysql一个无效的用户来跑mysqld呢,

因为早些年出现好多人利用load data把/etc/passwd加载到数据库拿到password 暴力破解

现在不存在了 

现在password放到好像是shadow里拿不到 

有这个权限也很悲剧

可以通过select into 一个 file 创建一个shell 给系统创建一个账号

所以需要注意

drop权限也要注意 避免被sql入侵把表drop掉

lock tables 一般情况下不建议开发在程序中使用 酌情考虑

blob.png

GRANT OPTION 

给了一个给别人授权的权限

show grants for 'root'@'localhost';

PROCESS

show processlist; 显示有哪些线程在运行

RELOAD

数据库重新加载

flush tables; flush logs; flush开头的

replication client VS replication slave  (虽然这里我还不懂)

replicaation client 

show master status;

show slave status;

replication slave复制传输用的

SHUTDOWN

mysql_multi里面配置的user 需要给配置这个

SUPER

当所有连接占完了会给SUPER权限保留连接

ALL

all 是除了grant option 之外的权限

USAGE 只能连上 啥也干不了

blob.png

mysql 5.6 引入了一个proxy user

但要买官方的插件

blob.png

select user,host,password from mysql.user;

blob.png

mysql.db

blob.png

我们测试库里mysql.columns_priv里数据貌似是空的

blob.png

blob.png

keepalived 密码是8个字符

mysql 用户名是16个字符以下

超过了会造成内存溢出

'leokim'@'192.168.11.%'

blob.png

mysql -S /path/mysql.sock -uwubx

mysql -h192.168.11.20 -uwubx -p

client:192.168.11.100

server 192.168.11.20

mysql -h192.168.11.20 -uwubx -p 这个时候用哪个密码呢?

匹配原则按最精确的情况匹配(wubxwubx)

blob.png

drop user 'wubx'@'192.168.11.%';

blob.png

云类的数据库对资源限制

每小时允许做多少次query,update等

max_user_connections

max_connections=1100

max_user_connections=500

控制连接数

blob.png

blob.png

忘记root密码怎么处理

核心是让mysqld重新加载一下权限表

kill -SIGHUP

mysql 5.6可以让一个密码过期 

mysql 5.6以后的客户端

可以让密码过期 直接登录 修改密码

blob.png

blob.png

show grants for 'wubx'@'localhost';

mysql手册第5,6章很值得看

blob.png

可以用iptables

在数据库里

grant usage on *.* to 'admin'@'192.168.10.15' identified by 'wubxwubx';

information_schema.processlist

找到ip干掉