博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)
阅读量:7136 次
发布时间:2019-06-28

本文共 2792 字,大约阅读时间需要 9 分钟。

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 '123456';-- 赋给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语法的了解,请参考官方文档:

 

3. 修改密码

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

--  (1)使用mysqladmin来修改,如果host是%,则-h 的host为空 [root@hsr ~]# mysqladmin -u z1 -h ''  password '123456' -pEnter 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('654321')Warning Code : 1287'SET PASSWORD FOR 
= PASSWORD('
')' is deprecated and will be removed in a future release. Please use SET PASSWORD FOR
= '
' instead

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

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

-- (3) 使用grant来修改密码GRANT USAGE  ON *.* TO 'z1'@'%' IDENTIFIED BY '123456'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('654321') 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表的记录就行了,不在演示。

转载于:https://www.cnblogs.com/MrHSR/p/9817735.html

你可能感兴趣的文章
日图K线交易系统
查看>>
Microsoft Remote Desktop的安装使用
查看>>
kubernetes dashboard v1.6.0 install
查看>>
计算机存储器
查看>>
JavaScript是如何工作的:渲染引擎和优化其性能的技巧
查看>>
vue中provide-inject跨多组件通讯
查看>>
【资料合集】2017云栖大会·北京峰会回顾合集:PDF下载
查看>>
087-设置服务器的中文字体
查看>>
数据分析:构建可视化报表服务
查看>>
redis 单实例使用及简单封装
查看>>
企业该如何做大数据的分析挖掘?这里有一份参考指南
查看>>
Execution failed for task ':app:processDebugResources'. No slave process to process jobs, aborting
查看>>
linux基础(day 33)
查看>>
12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.9 Nginx域名重定向
查看>>
MaxCompute Studio 使用入门
查看>>
linux进程介绍
查看>>
nginx服务器出现504 gateway time-out怎么解决
查看>>
Java-实现链表的基本操作
查看>>
Eclipse Platform 4.3.1.M20130814-0800
查看>>
MapReduce函数的JavaScript模拟实现
查看>>