博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL用户管理
阅读量:2797 次
发布时间: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://vilmd.baihongyu.com/

你可能感兴趣的文章
使用Xcode和Instruments调试解决iOS内存泄露
查看>>
CoreData底层架构实现 概述
查看>>
#import和@class在IOS中的区别
查看>>
a valid provisioning profile for this executable was not found错误
查看>>
使用Cocoapods创建私有podspec
查看>>
OC js 交互
查看>>
vivi
查看>>
韦的一些视频
查看>>
内核驱动深入班
查看>>
韦的视频列表
查看>>
waiting for transaction lock on /var/lib/rpm/__db.000
查看>>
shell-if
查看>>
shell-for
查看>>
shell-while
查看>>
shell-util
查看>>
系统编程之文件编程file_cp
查看>>
指针 数组 引用
查看>>
什么是可重入函数和不可重入函数
查看>>
《新人怎么学嵌入式》
查看>>
Linux本地root密码破解方法
查看>>