1. 查看权限

-- 如果host值不是%, 就要加上host值,下面查看bkpuser用户权限(6个权限, 限本地连接)
SHOW GRANTS FOR bkpuser@localhost;

    

-- 如果host值是%, 就只要输入用户名,下面查看z1用户权限(显示所有权限,不限ip连接)
SHOW GRANTS FOR z1;

    

2. 更改权限

  可以进行权限的新增和回收,使用grant来新增,使用revoke来回收。在前面52章节中也有介绍revoke的使用。 也可以直接对user,db,tables_priv,columns_prive 四个权限表进行更新,这个在上篇中也有讲到。

-- 例1:
CREATE USER 'z2'@'localhost' IDENTIFIED BY '';
-- 赋给z2@localhost用户在所有数据库上的所有表的select 权限
GRANT SELECT ON *.* TO 'z2'@'localhost'
-- 查看权限
SHOW GRANTS FOR z2@localhost;

    

--例2: 使用grant 来新增权限,新增一个insert权限,并和已有的select 权限进行合并
GRANT SELECT,INSERT ON *.* TO 'z2'@'localhost'

    

--例3: 使用revoke语句可以回收已经赋予的权限
-- 语法如下:
REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...
-- 回收insert权限,注意像usage登录权限是不能回收的。因为revoke并不能删除用户
REVOKE INSERT ON *.* FROM 'z2'@'localhost';

    
  更多revoke语法的了解,请参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/revoke.html

3. 修改密码

  修改密码有四种方法, (1)是使用mysqladmin命令,(2)是执行set password,(3)是使用grant。(4)是修改 user表。

 --  (1)使用mysqladmin来修改,如果host是%,则-h 的host为空
[root@hsr ~]# mysqladmin -u z1 -h '' password '' -p
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

  翻译是:在命令行界面上使用密码是不安全的。警告:由于密码将以纯文本形式发送到服务器,因此使用ssl连接以确保密码安全。

  修改密码后验证:使用客户端sqlyog来连接时,原有密码654321连接错误,改成123456 新密码连接成功。

-- (2) set password
SET PASSWORD FOR 'z1'@'%'=PASSWORD('')
Warning Code : 1287
'SET PASSWORD FOR <user> = PASSWORD('<plaintext_password>')' is deprecated and will be removed in a future release.
Please use SET PASSWORD FOR <user> = '<plaintext_password>' instead

  翻译是:1 个警告,该方法已弃用,将在将来的版本中删除

  修改密码后验证:使用客户端sqlyog来连接时,密码改成654321连接成功

-- (3) 使用grant来修改密码
GRANT USAGE ON *.* TO 'z1'@'%' IDENTIFIED BY ''
Using GRANT statement to modify existing user's properties other than privileges is deprecated and will be removed in future release.
Use ALTER USER statement for this operation.

  翻译是:使用GRANT语句修改现有用户的属性而不是特权是不赞成的,并将在以后的版本中删除。对这个操作使用ALTER USER语句。

  修改密码后验证:使用客户端sqlyog来连接时,密码改成123456连接成功。

--(4) 修改 user表
UPDATE mysql.`user` SET authentication_string=PASSWORD('') WHERE `Host`='%' AND `User`='z1'
Warning Code : 1681
'PASSWORD' is deprecated and will be removed in a future release.
-- 记住要刷新才生效。
FLUSH PRIVILEGES

  修改密码后验证:使用客户端sqlyog来连接时,密码改成654321连接成功。

  修改密码最后总结:2,4 案例在未来版本中会去掉,3案例在未来版本中使用alter user。 以后推荐使用mysqladmin和alter user 来修改密码。

4. 删除账号    

  要彻底删除账号,同样也有两种方法:(1) drop user命令 (2) 修改权限表。

--例如删除z2用户
DROP USER 'z2'@'localhost'
-- 查看权限
SHOW GRANTS FOR z2@localhost;

  查看权限显示:There is no such grant defined for user 'z2' on host 'localhost'。再查看user表也没有了z2用户的信息了。第二种方法删除,直接删除user表的记录就行了,不在演示。

mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)的更多相关文章

  1. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

  2. mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)

    一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...

  3. mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)

    一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...

  4. mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)

    一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...

  5. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...

  6. mysql 开发进阶篇系列 10 锁问题 (相同索引键值或同一行或间隙锁的冲突)

    1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...

  7. mysql 开发进阶篇系列 53 权限与安全(账号管理的各种权限操作 上)

    一. 概述 在了解前两篇的权限系统介绍后,这篇继续讲账号的管理,这些管理包括账号的创建,权限更改,账号删除等.用户连接数据库的第一步都是从账号创建开始. 1.  创建账号 有两种方法可以用来授权账号: ...

  8. mysql 开发进阶篇系列 52 权限与安全(系统四个权限表的粒度控制关系)

    一.概述 接着上篇的权限介绍,当用户进行连接的时候,权限表的存取过程有以下两个阶段: (1) 先从user表中的host,user, authentication_string 这3个字段中判断连接的 ...

  9. mysql 开发进阶篇系列 51 权限与安全(权限表user,db详细介绍 )

    一.概述 mysql 的权限系统主要用来对连接到数据库的用户进行权限验证,以此来判断此用户是否属于合法用户,以及合法用户给予的相应数据库权限.下面将介绍权限系统的工作原理,以及将要熟练掌握账号的管理和 ...

随机推荐

  1. nginx简介与配置

    nginx简介 nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行. nginx由俄罗斯的程序 ...

  2. tp3

    入口文件:index.php目录结构:核心,Thinkphp 公共资源,public jq 上传的图片等 应用目录,application 房模块 common:基于模块的公共目录,公共函数命名:类: ...

  3. Java关键字this与super

    this有两个用途: 1.引用隐式参数(出现在方法名前的参数,显示参数是出现在方法名后位于括号里的参数,如:e.raiseSalary(10%),e是隐式参数,10%是显示参数):这里比较常见.形式如 ...

  4. RPA答疑

    变量:部分主要对于工程中的变量进行管理和设置,支持手动拖拉至右侧画布 1全局变量:全局变量可以在整个工程中传递,被不同的子流程或函数进行调用,全局可见可调用 2 流程参数:只对子流程设置传入参数,供子 ...

  5. Python从入门到精通之Sixth!

    补充:enumerate 函数用于遍历序列(元组tuple.列表list.字典dict)中的元素以及它们的下标: >>> for i,j in enumerate(('a','b', ...

  6. poi实现Excel文件的读取

    1.前端代码 $("#upload").on('click', function() { var formData = new FormData(); var name = $(& ...

  7. Vue-箭头函数

    03-箭头函数   箭头函数 基本语法: ES6允许使用“箭头”(=>)定义函数 var f = a = > a //等同于 var f = function(a){ return a; ...

  8. bzoj3110(整体二分)

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

  9. 《python语言程序设计》_第4章_选择

    第四章 # 4.1 引言 布尔表达式:选择语句选择的条件. 程序: import math #加载math模块radius=eval(input("Enter an integer:&quo ...

  10. hdu 4069 垃圾数独

    首先dfs给每个格子分一个大的区块 其次套板子就a 我一开始直接在选取行的时候填数独,发现超时 我这一行也就4个元素,找到 x <= 81 的列计算元素位置,81 < x <= 16 ...