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. session实现原理(阿里面试题)

    问: 当用户登录某网站后,向服务器发送一个请求,服务器如何判断是这个用户请求的 首先,你要明白一点,最初http协议在设计的时候,主要面向当时的web1.0网站,他们不需要知道是谁来访问,只需要向外界 ...

  2. git服务搭建以及本地连接

    服务器系统:centos6.5 本地系统:Mac 10.11 注意事项:本地git和服务器版本最好一样,centos上面的yum install git版本是1.7的,需要手动在下载,并手动编译 下载 ...

  3. a,b值进行交换的方法

    方法一 最容易想到的就是拿一个空“杯子”进行转换,代码如下: <script type="text/javascript"> ; ; var c; c = a; a = ...

  4. 欧拉函数-gcd-快速幂(牛客寒假算法基础集训营1-D-小a与黄金街道)

    题目描述: 链接:https://ac.nowcoder.com/acm/contest/317/D来源:牛客网小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿 ...

  5. ES6使用fetch请求数据

    ie是完全不支持fetch的. fetch(url,{method:"get/post"}).then(res=>{   }) 如果请求返回的status是200,body是 ...

  6. 第47章:MongoDB-用户管理

    ①用户管理 在MongoDB里面默认情况下只要是进行连接都可以不使用用户名与密码,因为要想让其起作用,则必须具备以下两个条件: ·条件一:服务器启动的时候打开授权认证: ·条件二:需要配置用户名和密码 ...

  7. spring 5.1.2 mvc RequestMappingHandlerMapping 源码初始化过程

    RequestMappingHandlerMapping getMappingForMethod RequestMappingHandlerMapping 继承于 AbstractHandlerMet ...

  8. .Net QQ互联教程

    qq互联只需要备案即可申请,申请成功后可以到qq互联官网查看教程,本站开始想使用js的教程但是由于本站需要绑定本站的账号用js教程无法完成,所以使用原始的oauth2.0来完成. 申请qq互联接口 q ...

  9. numpy 库简单使用

    numpy 库简单使用 一.numpy库简介 Python标准库中提供了一个array类型,用于保存数组类型的数据,然而这个类型不支持多维数据,不适合数值运算.作为Python的第三方库numpy便有 ...

  10. nmap 介绍

    原文地址:http://drops.wooyun.org/tips/2002 原文地址:http://infotechbits.wordpress.com/2014/05/04/introductio ...