一、授权语法格式 
grant 权限列表 on 数据库名.表名 to '用户名'@'客户端主机' [identified by '密码'];

单词: privileges [ˈprivilidʒz] 权限
单词: identified [aɪ'dentɪfaɪd] 认出( identify的过去式和过去分词 ),身份验证

@ 权限列表:
all 所有权限(不包括授权权限)
select,update 查询,更新权限
select(name,address) 只查询name,address字段的权限
create create权限

@ 数据库.表名:
*.* 所有库下的所有表
web.* web库下的所有表
web.stu_info web库下的stu_info表

@ 客户端主机:
% 所有主机
192.168.2.168 主机
192.168.2.% 192.168.2.0网段的所有主机

二、登录MySQL主(master)数据库服务器
1.直接登录到主机的某个数据库中(如:zyyshop数据库)
[root@CentOS5 ~]# /usr/local/mysql/bin/mysql -uroot -p123456 zyyshop
mysql>

2.登录主机:隐式输入密码,进入之后再选择数据库
[root@CentOS5 ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
mysql> use zyyshop

三、用户授权
1.向主(master)数据库创建授权用户slave1,使之可由从任何主机(%)登录到主(master)服务器

mysql> grant all on *.* to 'slave1'@'%' identified by '123';

@ 权限列表: all 所有权限(其中,关键字 “privileges” 可以省略)
@ 数据库.表名:*.* 所有库的所有表
@ 授权用户: slave1
@ 客户端主机: % 所有主机
@ 登录密码: 123

2.向主(master)数据库创建授权用户slave2,使之可由从主机(192.168.137.%)登录到主(master)服务器:

mysql> grant select(name,classid),insert on zyyshop.stu to 'slave2'@'192.168.137.%' identified by '456';

@ 权限列表: select(name,classid),insert
@ 数据库.表名:zyyshop.stu 即zyyshop数据库的stu表
@ 授权用户: slave2
@ 客户端主机: 192.168.137.0网段的所有主机
@ 登录密码: 456

3.向主(master)数据库创建授权用户slave3,使之可由从主机(192.168.137.202)登录到主(master)服务器:

mysql> grant all on zyyshop.stu to 'slave3'@'192.168.137.202' identified by '789';

@ 权限列表: all 所有权限
@ 数据库.表名:zyyshop.stu 即zyyshop数据库的stu表
@ 授权用户: slave3
@ 客户端主机: 192.168.137.202
@ 登录密码: 789

4.刷新授权表
mysql> flush privileges;

总结: 1.不要使用系统自带的test数据库做实验,这是个开放测试库对权限设置通常不起作用致实验不成功,应该自己建立一个库。
2.对用户授权之后,会在mysql数据库的 mysql.user 表里存储当前用户信息;在 mysql.columns_priv 表里存储详细的权限字段;
3.grant, revoke 用户权限调整后,如果发现没有生效可尝试重新连接并登录MySQL主机。
4.如果想让被授权的用户可以将“获得的权限”也授予其他用户,需要加选项 “with grant option”(通常很少这样用,一般是DBA自个搞定授权)
@ user1还可以将获得的 testdb.stu 的 select,update 权限授权其它用户
mysql> grant select,update on testdb.stu to 'user1'@'localhost' with grant option;

四、客户端登录

# /usr/local/mysql/bin/mysql -uslave3 -p789 -h192.168.137.201 zyyshop

@ 用户名: slave3
@ 密码: 789
@ 主服务器地址: 192.168.137.201
@ 数据库名: zyyshop

五、查看权限
1.用户远程用户登录后,查看自己当前的权限(只能查看自己的权限):
mysql> show grants;

2.主(master)数据库的管理员DBA,查看系统中任一用户的权限列表(DBA用的操作命令)
@ 查看slave2用户的权限情况:
mysql> show grants for 'slave3'@'192.168.137.202';

六、收回权限
格式:revoke {权限列表} on {数据库名} from '用户名'@'客户端主机'

mysql> revoke all on *.* from 'slave1'@'%'; //收回 slave1 所有权限
mysql> revoke select(classid) on zyyshop.stu from 'slave2'@'192.168.137.%'; //收回 slave2 对stu表classid的查询权限

注: 1.权限收回之后,但对应的用户仍然存在于mysql.user表中;
2.如果只删除用户,不会删除用户的权限,权限记录仍存于msyql.columns_priv表中;
mysql> delete from mysql.user where user='slave3' and host='192.168.137.202'; //从用户表中删除
mysql> delete from msyql.columns_priv where user='slave3'; //从字段权限明细表中删除

七、修改密码
@ 用户自己修改自己的密码
mysql> set password=password('123456');

@ DBA管理员为用户修改密码1:
mysql> set password for 'slave3'@'192.168.137.202' = password('123');

@ DBA管理员为用户修改密码2:
mysql> update mysql.user set password = password('123') where host='192.168.137.202' and user='slave1';

刷新授权表:
mysql> flush privileges;

MySQL用户授权的更多相关文章

  1. mysql用户授权、数据库权限管理、sql语法详解

    mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...

  2. MySQL用户授权 和 bin-log日志 详解和实战(http://www.cnblogs.com/it-cen/p/5234345.html)

    看 了上一篇博文的发布时间,到目前已经有三个月没更新博文了.这三个月经历了很多事情,包括工作.生活和感情等等.由于个人发展的原因,这个月准备换工作 啦.在这段时间,我会把Web大型项目中所接触到的技术 ...

  3. MySQL用户授权 和 bin-log日志 详解和实战

    看了上一篇博文的发布时间,到目前已经有三个月没更新博文了.这三个月经历了很多事情,包括工作.生活和感情等等.由于个人发展的原因,这个月准备换工作啦.在这段时间,我会把Web大型项目中所接触到的技术都总 ...

  4. mysql用户授权及数据备份恢复

    用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...

  5. MySQL用户授权【转】

    MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant selec ...

  6. mysql用户授权以及权限收回

    语法 GRANT privileges [(columns)] ON DATABASE.TABLE TO 'username'@'hostname' [IDENTIFIED BY [PASSWORD] ...

  7. MySQL用户授权与权限

    MySQL权限如下表 权限名字 权限说明 Context CREATE 允许创建新的数据库和表 Databases, tables, or indexes DROP 允许删除现有数据库.表和视图 Da ...

  8. mysql 用户授权命令

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_root_password' WITH GRANT OP ...

  9. python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原

    ###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...

随机推荐

  1. XAF-如何改变列表点击时的默认行为

    在 Windows 窗体应用程序中,按下回车或双击列表会打开默认的详细视图. 在 ASP.NET Web 应用程序中,单击对象时执行此操作. 这一行为是由 ListViewProcessCurrent ...

  2. SQL Server 2008 R2 链接 Oracle 10g

    首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1.“MSDAORA”访问接口是由Microsoft OLE DB Provi ...

  3. DDD实战成绩管理---用户故事

    本次DDD实践选取我们都熟悉的高校成绩管理作为例子. (一).需求描述 每学期学校教务处老师会进行教学安排,具体就是建立教学班,指定该教学班代课教师,上课学生,然后进行排课(忽略此部分,这是另一个系统 ...

  4. python全栈开发-面向对象-进阶2

    python_day_19 今日主要内容: 1.抽象类,接口类 2.多态 3.封装 1.抽象类,接口类 python 没有接口这个概念接口类,抽象类: 制定一个规范. 举个栗子:你的项目经理提一个需求 ...

  5. 牛客小白月赛9H论如何出一道水题(两个连续自然数互质)

    题面 记录一下...连续得两个自然数互质,这题再特判一下1的情况 #include<bits/stdc++.h> using namespace std; int main() { lon ...

  6. oracle的分号和斜杠/

    ;是执行语句必须的/是执行语句块必须的 比如执行一个触发器 CREATE OR REPLACE TRIGGER "TRG_1" BEFORE INSERT ON "CAT ...

  7. 【python 3.6】python读取json数据存入MySQL(二)

    在网上找到一个包含全国各省市经纬度的json文件,也可以通过上次的办法,解析json关键字,构造SQL语句,插入数据库. JSON文件格式如下: [ { "name": " ...

  8. thinkphp5框架生成二维码(二)

    上篇已经讲过了SDK之类的,这个不再重复,有不知道的童鞋们,请去看上篇文章吧. 这里我用的方法比较老旧,大家有更好的方法,可以进行改良,还有linux服务器,记得给文件权限,否则生成的文件会失败的.大 ...

  9. 【转】React-Native 实现增量热更新的思路

    所谓热更新就是在不重新安装的前提下进行代码和资源的更新,相信在整个宇宙中还不存在觉得热更新不重要的程序猿. 增量热更新就更牛逼了,只需要把修改过和新增的代码和资源推送给用户下载即可,增量部分的代码和资 ...

  10. Codeforces Round #335 (Div. 2) D. Lazy Student 贪心+构造

    题目链接: http://codeforces.com/contest/606/problem/D D. Lazy Student time limit per test2 secondsmemory ...