博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL用户管理
阅读量:2799 次
发布时间:2019-05-13

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

文章来源于:

一、创建用户并分配权限:

SQL语句:
-------------------------------------------------------------------------
GRANT privileges [(columns)]
ON item
TO 'user_name'@'host_name' [IDENTIFIED BY 'password']
[REQUIRE ssl_options]
[WITH [GRANT OPTION | limit_option]]
-------------------------------------------------------------------------
1) privileges子句
分成三种类型的访问权限: 管理权限(如: SHUTDOWN, FILE, RELOAD等)
数据库等的操作权限(如: SELECT, UPDATE, INSERT,DELETE等)
特殊权限: ALL代表除GRANT外的所有权限,USAGE代表无权限
2) columns 指定数据列的访问权限( 如: SELECT( newsId, title) )
3) item 指定有关权限的作用范围:
*--当未指定数据库时:所有数据库的所有表。指定数据库当前数据库所有表,
*.*--所有数据库中的所有表
dbName.*--指定数据库的所有表
dbName.tbName--指定数据库指定表
tbName默认数据库的指定表
4) user_name新用户的用户名
5) host_name主机名--'%'表示所有的主机( 'user_name'@'%' = 'user_name')。在host_name 中可以有通配符*如: 202.115.6.*
6) IDENTIFIED BY 'password'用户密码设置。不提供该子句的出现的两种情况:创建新用户时--密码为空, 修改用户时--密码不变
7) REQUIRE ssl_option 是否要用加密连接mysql(只有unix mysql支持,一般不用该子句)
8) WITH GRANT OPTION 创建的用户是否能够把自己的权限分配给别的用户
8.1) WITH MAX_CONNECTION_PER_HOUR n MAX_QUERIES_PER_HOUR n MAX_UPDATES_PER_HOUR N;用来设置该用户最大的连接数,每小时查询次数,每小时修改次数。默认情况下无限制。
-----------------------------------------------------------------------------------------------------------
二:收回权限和删除用户
SQL语句:
REVOKE privileges (columns) ON item FROM account
account必须与授予权限时一致,而privileges不用一致。
例子:收回用户的所有权限并删除用户
一种方法:
删除出授权权限外的所有权限
mysql> REVOKE ALL ON *.* FROM userName;
如有为用户添加授权权限则
mysql> REVOKE GRANT OPTION ON *.* FROM userName;
如果创建时要求用户必须使用SSL连接则必须:
mysql> GRANT USAGE ON *.* TO userName REQUIRE NONE;
如果创建时要求用户必须设置连接数等:
mysql> GRANT USAGE ON *.* TO userName WITH MAX_CONNECTION_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
上面只是收回了权限,下面是删除用户
mysql> use mysql;
mysql> DELETE FROM user WHERE User= 'userName' and Host = 'hostName';
mysql> FLUSH PRIVILEGES;(重新载入授权表)
更简单的一种方法:
mysql> delete from user where User = 'userName' and Host = 'hostName';
mysql> delete from db where User = 'userName' and Host = 'hostName';
mysql> delete from columns_pri where User = 'userName' and Host = 'hostName';
mysql> delete from tables_pri where User = 'userName' and Host = 'hostName';
mysql> flush privileges;
--------------------------------------------------------------------------------------------------------
三: (扩展)修改口令&设置丢失的口令
方法一: mysql> GRANT USAGE ON *.* TO 'userName'@'hostName' IDENTIFIED BY 'newPassword';
方法二: mysql> set password for 'userName'@'hostName' = PASSWORD('newPassword')
方法三 : mysql> use mysql;
mysql> update User set password = PASSWORD('newPassword') where User = 'userName' AND Host = 'hostName';
mysql> FLUSH PRIVILEGES;

转载地址:http://tilmd.baihongyu.com/

你可能感兴趣的文章
《图解网络硬件》学习笔记。
查看>>
《网络是怎样连接的》看书笔记。
查看>>
python学习笔记。
查看>>
python学习笔记2
查看>>
HCNA
查看>>
python学习笔记pdf版
查看>>
linux操作系统基础学习笔记
查看>>
python基础-day03
查看>>
python基础day40
查看>>
python基础-day56
查看>>
前端基础-day57
查看>>
数据库基础-day61
查看>>
面试题24:二叉搜索树的后序遍历序列
查看>>
面试题9:斐波拉契数列及其变种
查看>>
面试题10:二进制中1的个数
查看>>
面试题11:数值的整数次方
查看>>
面试题12:打印1到最大的N位数
查看>>
面试题13:在O(1)时间删除链表结点
查看>>
面试题14 :调整数组顺序使奇数位于偶数前面
查看>>
面试题15 :链表中倒数第k个结点
查看>>