对于互联网企业,我们知道数据是不可再生的资源,重要数据一旦丢失,将损失惨重。数据库的安全至关重要,因此对于后台管理员的权限要严格控制,要有针对性的创建用户,在满足管理需求的基础上,要最小化其操作权限。因此我们针对不同用户,会有选择性的针对某个库或者表单独授权,最大程度降低数据丢失的风险,防患于未然。
1)最大授权grant all on *.* to ‘user1‘@‘127.0.0.1‘ idtentified by ‘passwd‘;
all 表示所有的操作,增删改查都可以
两个*, 前者代表所有的数据库,后者表示所有的表
user1 指用户名
127.0.0.1 为本机ip ,可以是网络上其他主机的ip,意思是客户端的来源ip
identified by 后面跟密码。需要加单引号。
2)仅针对某些操作授权grant SELECT,UPDATE,INSERT on db1.* to ‘user2‘@‘192.168.226.129‘ identified by ‘passwd‘;
3)针对所有的源ip授权grant all on db1.* to ‘user3‘@‘%‘ identified by ‘passwd‘;
4)查看某个授权show grants for user1@192.168.226.129;
举例:
grant SELECT,UPDATE,INSERT on db1.* to ‘user2‘@‘192.168.226.129‘ identified by ‘lvlinux‘;
如果要在给上面授权用户增加一个访问ip 怎么做,当然可以根据上面命令,直接修改ip,如果忘记了之前的授权项,我们可以直接查找出来,复制之前的命令结果,更改ip重新执行就可以。
show grants for user2@192.168.226.129;
GRANT USAGE ON *.* TO ‘user2‘@‘192.168.226.130‘ IDENTIFIED BY PASSWORD ‘*E8F4006805F5210EB4D651BD6F9CB6100ACD1BFF‘;
GRANT SELECT, INSERT, UPDATE ON `db1`.* TO ‘user2‘@‘192.168.226.130‘;
show grants for user2@192.168.226.130;
select count(*) from mysql.user; //统计mysql库中user表的行数
select * from mysql.db\G; // 查看表db表里的所有内容,慎用。
select db from mysql.db; // 查看db表里的db字段
select db,user from mysql.db; // 同时查看两个字段
select * from mysql.db where host like ‘192.168.%‘\G; //模糊匹配查询
insert into db1.t1 values (1, ‘abc‘); // 在表里插入一条数据
update db1.t1 set name=‘aaa‘ where id=1; //更新一条数据
delete from db1.t1 where id=2; //删除某一条数据
truncate table db1.t1; // 清空一个表,保留表结构。
drop table db1.t1; //删除整个表
drop database db1; // 删除库
备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql
备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql
备份所有库 mysqldump -uroot -p -A >/tmp/123.sql
只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
注意:备份用的是mysqldump,恢复用的是mysql,备份表要写库名和表名,恢复表不用写表名。备份所有库,是-A ,备份表结构是-d
原文地址:http://blog.51cto.com/12606610/2114205