mysql设置指定ip访问,用户权限相关操作
基础语法
GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFIED BY [PASSWORD] 'password']...]
priv_type代表允许操作的权限。
database.table代表数据库名.表名
注意*代表所有,如database.*代表该数据库的所有表,*.*代表所有数据库的所有表
user由用户名(User)和主机名(Host)构成,中间用@隔开,最好加上单引号,不加也可以执行通过。
password代表设置的密码
例子
授权所有数据库的所有表的所有权限给ip为任意值用户名为test密码为pwd的用户
GRANT ALL ON *.* TO 'test'@'%' IDENTIFIED BY 'pwd';
授权mydb数据库的所有表的增删改查权限给ip为1.1.1.1用户名为test密码为pwd的用户
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test'@'1.1.1.1' IDENTIFIED BY 'pwd';
授权mydb数据库的stu表的修改权限给ip为1.1.1.1用户名为test密码为pwd的用户
GRANT UPDATE(name,age) ON mydb.stu TO 'test'@'1.1.1.1' IDENTIFIED BY 'pwd';
Mysql权限层级相关表
user表:全局层级
存储用户记录的表。关键字段有Host、User、Password。
创建对所有表有SELECT操作权限的用户
GRANT SELECT ON *.* TO name@'1.1.1.1' IDENTIFIED BY 'pwd';
db表:数据库层级
存储该用户对一个数据库所有的操作权限。关键字段有Host、User、Db。
授予所有权限
GRANT ALL ON mydb.* TO name@'1.1.1.1' IDENTIFIED BY 'pwd';
tables_priv表:表层级
记录了对一个表的单独授权记录.关键字段有Host、User、Db、Table_name、Table_priv、Column_priv。
当授权all在某张表的时候,Table_priv会有如下授权记录:
Select,Insert,Update,Delete,Create,Drop,References,Index,Alter,Create View,Show view,Trigger。
单独授权表的某一列,会记录在此表的Column_priv里
GRANT UPDATE(age) ON mydb.user TO name@'1.1.1.1';
GRANT SELECT(birthday) ON mydb.user TO name@'1.1.1.1';
此时会在另一张表columns_priv表中留下单独授权记录
columns_priv表:列层级
记录对表的某一列的授权记录。关键字段Host、User、Db、Table_name、Column_name。
procs_priv表:子程序层级
可以对存储过程和存储函数进行权限设置。关键字段Host、User、proc_priv
用户相关操作
创建用户
CREATE USER方式
必须要拥有CREATE USER权限。
CREATE USER user[IDENTIFIED BY [PASSWORD] 'password'],
[user[IDENTIFIED BY [PASSWORD] 'password']]...
CREATE USER 'name'@'%' IDENTIFIED BY 'pwd';
INSERT方式
必须拥有mysql.user表的INSERT权限。另外,ssl_cipher、x509_issuer、x509_subject等必须要设置值
INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES('%','name',PASSWORD('pwd'),'','','')
GRANT方式
需要拥有GRANT权限。
GRANT priv_type ON database.table
TO user[IDENTIFIED BY [PASSWORD] 'password']
[,user [IDENTIFIED BY [PASSWORD] 'password']...]
GRANT ALL ON mydb.* TO name@'1.1.1.1' IDENTIFIED BY 'pwd';
删除用户
DROP USER方式
需要拥有DROP USER权限。
DROP USER user[,user]…
user是需要删除的用户,由用户名(User)和主机名(Host)构成。
DROP USER name@'1.1.1.1'
DELETE方式
DELETE FROM mydb.user WHERE Host = '% AND User = 'admin';
修改用户
修改用户名称
RENAME USER name TO newname
修改用户密码
mysqladmin方式
mysqladmin -u username -p password "new_password";
修改user表
UPDATE user SET Password = PASSWORD('pwd') WHERE USER = 'name';
SET语句方式
修改自己用户
SET PASSWORD = PASSWORD("pwd");
修改其他用户
SET PASSWORD FOR 'name'@'%'=PASSWORD("pwd")
GRANT方式
GRANT SELECT ON *.* TO 'name'@'%' IDENTIFIED BY 'pwd'
忘记密码
mysqld_saft方式
停止mysql:service mysqld stop;
安全模式启动:mysqld_safe –skip-grant-tables &
无密码回车键登录:`mysql -uroot –p
重置密码:use mysql; update user set password=password("") where user=’root’ and host=’localhost’; flush privileges;
正常启动:service mysql restart
再使用mysqladmin:mysqladmin password '123456';
使用普通账号来找回密码
有一个修改test库的用户:grant all on mydb.* to test@’%’ identified by ‘test’;
复制user表文件到test库下并且赋予mysql用户访问权限:
cp /home/data/mysql/data/mysql/user.* /home/data/mysql/data/test/;
chown mysql.mysql /home/data/mysql/data/test/user.*
mysql -utest -ptest登录修改root密码
将test库的user表文件覆盖 mysql库的user表文件
cp /home/data/mysql/data/mysql/user.* /tmp/;
mv /home/data/mysql/data/test/user.* /home/data/mysql/data/mysql/ ;
chown mysql.mysql /home/data/mysql/data/mysql/user.*;
查找mysql进程号,并且发送SIGHUP信号,重新加载权限表。
pgrep -n mysql;
kill -SIGHUP 11111;
无密码登录,再使用mysqladmin重新设置密码。
收回用户权限
查看权限
SHOW GRANTS;
SHOW GRANTS FOR name@'%';
SELECT * FROM mysql.user WHERE USER='name' AND HOST='%';
revoke收回权限
REVOKE priv_type[(column_list)]
ON database.table
FROM user[,user]
REVOKE EXECUTE ON mydb.* FROM name@'%';
附录常见概念
PRIVILEGES分类权限
数据库/数据表/数据列权限
Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
-INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。
全局管理MySQL用户权限:
file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录–其它什么也不允许做。
user表中host列的值的意义
%:匹配所有主机
localhost:localhost不会被解析成IP地址,直接通过UNIXsocket连接
127.0.0.1:会通过TCP/IP协议连接,并且只能在本机访问;
::1:兼容支持ipv6的,表示同ipv4的127.0.0.1
---------------------
作者:ToughMind_
来源:CSDN
原文:https://blog.csdn.net/liuquan0071/article/details/62423674
版权声明:本文为博主原创文章,转载请附上博文链接!
mysql设置指定ip访问,用户权限相关操作的更多相关文章
- 【问题记录】mysql设置任意ip访问
# 给username用户授予可以用任意IP带密码password访问数据库 GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'IDENTIFIED BY 'p ...
- mysql设置指定ip远程访问连接的方法
本文实例讲述了mysql设置指定ip远程访问连接的方法,分享给大家供大家参考.具体实现方法如下: 1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码 代码如下: GRA ...
- iptables/mysql设置指定主机访问指定端口
本周,运维告知部署的服务被扫描发现漏洞,涉及的软件分别为mysql,ZooKeeper与Elasticsearch. 因为最近任务繁重,人力资源紧张,因此无法抽出更多时间调整代码,添加权限认证. 与软 ...
- mysql设置指定ip远程访问连接实例
1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 复制代码代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED ...
- 阿里云设置指定ip访问实例
添加安全组规则 添加允许访问的外网IP,优先级设置为1,并将所有ip设置为拒绝访问,优先级设置为2. 参考地址: https://help.aliyun.com/document_detail/254 ...
- windows防火墙安全设置指定ip访问指定端口
场景摘要: 1.我有三台腾讯云服务器 2.我日常办公网络的ip换了 3.我在腾讯云上面改了安全规则,也不能访问我A服务器的21,1433等端口 4.开始我以为是办公网络的安全设置问题 5.我进B服务器 ...
- iptables 设置特定IP访问指定端口
一.添加规则:设置禁止所有IP访问指定端口8075 [root@zabbix_server ~]# iptables -I INPUT -p tcp --dport -j DROP 二.测试telne ...
- 重置Mysql的root密码及用户权限设置
一.重置Mysql的root密码 方法一: 直接进入localhost/phpmyadmin修改用户root的权限,设置密码: 方法二: 进入mysql控制台:mysql->use mysql ...
- 授权指定ip访问mysql 服务器
授权指定ip访问访问 授权ROOT使用密码1234从应用服务器主机连接到mysql服务器 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx. ...
随机推荐
- SILK 预测模块分析
SILK是一种新结构的基于噪声整形量化算法的编解码框架.不同于类CELP的AMR,EVRC,G729,Speex等标准. 类CELP的结构都是以码本激励为量化框架的编码器.但是这里并不讨论NSQ结构和 ...
- Spring-boot(二)yml文件的使用
上一章创建了一个简单的springboot项目,配置可以说非常的简单. 不过,在实际开发中不可能都用默认的配置,还是需要根据自己的实际项目需求有自定义的配置的. 比如:端口号需要变更,模板引擎的缓存开 ...
- redis竞汰数据同步问题解决
Redis 面试的时候遇到过问Redis是如何解决“竞态条件”的,相关知识点总结一下. 乐观锁 所谓竞态条件,举个例子,一个代表点击数的数值hitcount,每个客户点击一次则+1. 没有事务的时候, ...
- 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输
实验现象: 核心代码: int main(void) { system_clock.initialize(); //ϵͳʱÖÓ³õʼ»¯ led.initialize(); //LED³õʼ ...
- opencv 基本使用
1.下载opencv库 https://opencv.org/ 下载后文件: 双击提取文件到指定路径: * 下载winpack版本可以省去自己编译的步骤,下载后无需安装双击可以直接提取文件到指定目录: ...
- Mac vim“装逼”配置
配置c++ 等编程语言补全等 from blog http://www.cnblogs.com/xiaobo-Linux/p/8909402.html 1. 安装 macvim brew instal ...
- [Model] ResNet
ResNet引入了残差网络结构(residual network),通过残差网络,可以把网络层弄的很深,据说现在达到了1000多层,最终的网络分类的效果也是非常好 Ref: http://blog.c ...
- 【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- js添加事件处理程序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js的微任务和宏任务
1.机制如下: 注意一点: 宏任务需要多次事件循环才能执行完,微任务是一次性执行完的: 2.宏任务macrotask: (事件队列中的每一个事件都是一个macrotask) 优先级:主代码块 > ...