1、首先查看系统中所有的用户:
select host,user from mysql.user;
2、删除系统的多余帐号语法drop user"user"@"主机域" 注意引号,可以是单或双引号;
范例: drop user ‘‘@‘moban2‘
#如果为空直接为空即可;
#如果drop删除不了(一般是特殊字符或大写),可以用下面的方式删除:
范例:delete from mysql.user where user=‘root‘ and host=‘127.0.0.0.1‘;
3、创建用户的时候最好首先通过help查看grant命令帮助:
CREATE USER ‘jeffrey‘@‘localhost‘ IDENTIFIED BY ‘mypass‘;
GRANT ALL ON db1.* TO ‘jeffrey‘@‘localhost‘;
GRANT SELECT ON db2.invoice TO ‘jeffrey‘@‘localhost‘;
GRANT USAGE ON *.* TO ‘jeffrey‘@‘localhost‘ WITH MAX_QUERIES_PER_HOUR 90;
4、运维人员常用的创建方法,使用grant命令创建用户的时,进行权限授权:
范例:grant all privileges on db1.* to [email protected] identified by "password";
# grant all privileges on db1.* to [email protected] identified by‘passwd‘ 授权命令 对应权限(all所有权限) 目标:库和表用户名和客户端主机 用户密码
5、授权完毕后要刷新权限:
flush privileges;
6、查看创建的用户:
select host,user from mysql.user;
7、查看创建用户的权限: show grants for [email protected];
#USAGE 表示用户只可以登录,没有其它权限,操作的时候显示Access denied;
或者:
查看帮助:help create user
CREATE USER ‘jeffrey‘@‘localhost‘
IDENTIFIED WITH my_auth_plugin;
先创建用户:
create user [email protected] identified by "password";
查看用户权限:
show grants for [email protected];
在授权:
grant all on dbname.* to [email protected];
查看权限:
show grants for [email protected];
8、授权局域网内主机远程连接数据库,常见的使用%匹配方法:
范例: grant all on *.* to [email protected]‘10.10.36.%‘ identified by "123456";
刷新权限:flush privileges;
登录使用-h指定主机,-P指定端口
范例:mysql -u username_2 -p -h 10.10.36.170
确定mysql 可以授权的权限,如果不知道可以这样:
⑴帮助查看:help revoke (权限收回)
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
⑵权限查看:show grants for [email protected];
⑶收回插入权限:revoke insert on *.* from ‘user_name‘@‘localhost‘;
#注意此处指定数据库
⑷登录数据库后权限查看:show grants for [email protected];
⑸退出数据库后: mysql -uroot -p123456 -e "show grants for "username"@"localhost";" | grep -i grant | tail -1|tr ‘,‘ ‘\n‘ >all.privileges
以下为数据库中的权限:
SELECT 查询\INSERT 插入 \UPDATE 更新\DELETE 删除 \CREATE 创建库和表\DROP 删除库和表\INDEX 索引\ALTER 修改 \CREATE TEMPORARY TABLES 创建临时表\ LOCK TABLES 锁表\ EXECUTE 执行\ CREATE VIEW 创建视图\ SHOW VIEW 显示视图\ CREATE ROUTINE 创建存储过程\ALTER ROUTINE 修改存储过程\ EVENT 事件\ TRIGGER 触发器
或者:select * from mysql.user\G;
9、针对博客、cms 等产品安装期间要采用最下话原则 :除了select,insert,update,delete4个权
限外,还需要create,drop等危险权限
范例:grant select,insert,update,delete,create,drop on blog.* to [email protected]‘10.10.36.%‘
identified by "password";
10、生产数据库后收回权限(最好评估):
范例:revoke create,drop on blog.* from [email protected]‘10.10.36.%‘;
主从数据库权限设定慢慢在补。