#### (3)创建某个用户,只能查询指定数据库的某个表,该库其他表都看不到!其他数据库完全看不到!

CREATE USER ‘用户名’@‘%’ IDENTIFIED BY ‘登录数据库的密码’;
GRANT SELECT ON 数据库名称.表名 TO ‘用户名’@‘%’;

#### (4)创建某个用户,只能操作(增、删、改、查)指定数据库的某个表,该库其他表都看不到!其他表也操作不了!

CREATE USER ‘用户名’@‘%’ IDENTIFIED BY ‘登录数据库的密码’;
GRANT SELECT, INSERT, UPDATE, DELETE ON 数据库名称.表名 TO ‘用户名’@‘%’;

#### (5)创建某个用户,只能查询指定数据库的某个表,该库其他表都看不到!并且指定数据库用户登录的IP地址!其他IP无法登录!

CREATE USER ‘用户名’@‘IP地址’ IDENTIFIED BY ‘登录数据库的密码’;
GRANT SELECT ON 数据库名称.表名 TO ‘用户名’@‘IP地址’;

**总结一下运维常用的几种赋予权限的方法!**


### 二、将A服务器的MYSQL的所有用户权限复制迁移到B服务器MYSQL的方法


**在日常生产运维工作中,我们经常需要迁移服务器,如果源服务器上的用户建立的非常多,并且还在生产上用着,整个迁移过程就很繁琐,如果漏了,会导致生产事故,笔者介绍一种MYSQL服务器用户权限的迁移方法,方便简单,节省工作量。**


#### MYSQL导出所有用户权限shell脚本实例觉得有效


**实际生产生活中,我经常要迁移MYSQL服务器,需要导出数据库的所有用户名密码以及权限。**  
 **给大家一个确定可行的shell脚本实例**

cd /home/

touch exp_grant.sh

chmod 777 exp_grant.sh

vim exp_grant.sh

#!/bin/bash
#Function export user privileges
pwd=123456 #root的密码
expgrants()
{
mysql -B -u’root’ -p${pwd} -N $@ -e "SELECT CONCAT(
‘SHOW GRANTS FOR ‘’’, user, ‘’‘@’‘’, host, ‘’‘;’
) AS query FROM mysql.user" | \
mysql -u’root’ -p${pwd} $@ | \
sed ‘s/(GRANT .*)/\1;/;s/^(Grants for .*)/-- \1 /;/–/{x;p;x;}’
}
expgrants > ./grants.sql

sh exp_grant.sh #执行命令