mysql 用户与权限
1、用户
1)创建用户 "create user '用户'@'host' identified by '密码';"
在5.7以后的版本中要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。
创建一个用户 'zhangsan',在同一网段内的主机都可以访问
create user 'zhangsan'@'192.168.1.%' identified by 'as-AS-12';
2)查看用户 "select user, host from user;"
mysql用户的所有信息都存储在 mysql.user 表中,主要包含用户的能连接mysql的主机ip,用户名,加密后的密码,权限。
host字段表示能连接mysql的的主机ip,"%" 所有的ip都能进行登录。
mysql> use mysql;
Database changed mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
3)删除用户 "drop user '用户'@'host'; "
drop user 'zhangsan'@'192.168.1.%';
4)修改用户 "rename user '用户'@'host' to '修改后的用户名'@'host';"
rename user 'zhangsan'@'192.168.1.%' to 'zhangsan'@'192.168.1.150';
5)修改密码
① 修改密码方式1,在命令行--这种方式要确认本机有连接 'zhangsan' 用户的权限,否则无法更改。
[root@mini ~]# mysqladmin -uzhangsan -p password
Enter password:
New password:
Confirm new password:
② 修改密码方式2
mysql> alter user 'zhangsan'@'%' identified by 'as-AS-12';
在mysql8.0以上的版本采用了新的加密方式,以下两种在8.0不适用
③ 修改密码方式3,在mysql中修改,只有root用户与用户自己能修改密码
mysql> set password for 'zhangsan'@'%' = password('sa-SA-12');
④ 修改密码方式4,在mysql中修改。
一定要记得where条件,否则所有的用户密码都修改了,谨慎使用,这种方式需要对mysql.user表有update权限。可以用root用户登录修改。
5.7以下的版本将 authentication_string 改为password 即可
update user set authentication_string=password('as-AS-12') where user = 'zhangsan';
flush privileges;
6)某个用户多个ip访问
create user 'zhangsan'@'192.168.1.2' identified by 'as-AS-12';
create user 'zhangsan'@'192.168.1.3' identified by 'as-AS-12';
create user 'zhangsan'@'192.168.1.4' identified by 'as-AS-12';
2、权限
1)所有的权限
有关mysql所有权限可查看官方文档 https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
2)查看权限 "show grants for '用户'@'host';" *:代表所有数据库或数据表
查看 'zhangsan' 的权限,如下 'zhangsan' 并没有任何的权限。
mysql> show grants for 'zhangsan'@'%';
+------------------------------------------------+
| Grants for zhangsan@% |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhangsan'@'%' |
+------------------------------------------------+
1 row in set (0.00 sec)
3)权限赋予 "grant 权限 on 数据库.数据表 to '用户'@'host';"
① 给 'zhangsan' 赋予 'update, select, insert' 权限,在test2数据库的所有表
mysql> grant select, update, insert on test2.* to 'zhangsan'@'%';
Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'zhangsan'@'%';
+-------------------------------------------------------------+
| Grants for zhangsan@% |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhangsan'@'%' |
| GRANT SELECT, INSERT, UPDATE ON `test2`.* TO 'zhangsan'@'%' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)
② 给 'zhangsan' 赋予 'all privileges' 权限,在所有的数据库的所有表中
mysql> grant all privileges on *.* to 'zhangsan'@'%';
Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'zhangsan'@'%';
+-------------------------------------------------------------+
| Grants for zhangsan@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' |
| GRANT SELECT, INSERT, UPDATE ON `test2`.* TO 'zhangsan'@'%' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)
4)删除权限 "revoke 权限 on 数据库.数据表 from '用户'@'host';" *:代表所有数据库或数据表
① 删除 'zhangsan' 在 *.* 的 'all privileges' 权限
mysql> revoke all privileges on *.* from 'zhangsan'@'%';
Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'zhangsan'@'%';
+-------------------------------------------------------------+
| Grants for zhangsan@% |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zhangsan'@'%' |
| GRANT SELECT, INSERT, UPDATE ON `test2`.* TO 'zhangsan'@'%' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)
② 删除 'zhangsan' 在 'test2'.* 的 'insert, update' 权限
mysql> revoke insert, update on test2.* from 'zhangsan'@'%';
Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'zhangsan'@'%';
+---------------------------------------------+
| Grants for zhangsan@% |
+---------------------------------------------+
| GRANT USAGE ON *.* TO 'zhangsan'@'%' |
| GRANT SELECT ON `test2`.* TO 'zhangsan'@'%' |
+---------------------------------------------+
2 rows in set (0.00 sec)
mysql 用户与权限的更多相关文章
- Mysql 用户,权限管理的几点理解。
前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...
- mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- MySQL Study之--MySQL用户及权限管理
MySQL Study之--MySQL用户及权限管理 MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...
- 如何给mysql用户分配权限+增、删、改、查mysql用户
在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...
- 入门MySQL——用户与权限
前言: 前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...
- MySQL用户与权限管理
执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...
- MySql 用户 及权限操作
bin/msyql -h host -u user -p bin/mysql -u mysql -p 本地登录 如无密码按回车直接进入mySql bin/mysqladmin -u roo ...
- mysql用户管理,权限管理
mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...
- mysql用户和权限管理
用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...
- mysql 用户管理 权限控制
添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...
随机推荐
- Python Subprocess Popen 管道阻塞问题分析解决
http://ju.outofmemory.cn/entry/279026 场景:1>不断播放mp3文件: 2>使用订阅发布模式保持tcp长连接,从服务器接收信息 造成程序hang死,但是 ...
- JS缺失错误- Uncaught SyntaxError: Unexpected token <
这种情况,表明,缺少js文件 解决方式:在文件夹下将缺少js文件补足
- [转]java中判断字符串是否为数字的三种方法
1用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ ...
- kafka---->kafka的使用(一)
今天我们来学习一下kafka的简单的使用与配置.世上有可以挽回的和不可挽回的事,而时间经过就是一种不可挽回的事. kafka的安装配置 一.kafka的使用场景 活动跟踪:网站用户与前端应用程序发生交 ...
- css笔记 - transform学习笔记(二)
transform转换 CSS transform 属于2D/3D上的转换.变形效果.他不是一个动画,他就是变形.比如正方形变平行四边形,再变圆形.都是形状变成另一个形状. 但是如果配合上transi ...
- vue经验 - 那些自己给自己挖的深坑
深坑场景:vue-异步请求数据,数据还没回来,页面却如饥似渴的准备好了的尴尬场景:问题原因和解决如下: 1.先说vuex中的store,一开始我为了偷懒是这么设置的,如下图: 然后我到了组件中直接这么 ...
- List的五种去重方式
//set集合去重,不改变原有的顺序 public static void pastLeep1(List<String> list){ System.out.println("l ...
- Ubuntu Eclipse配置Python开发环境
一 在Eclipse中安装pydev插件 启动Eclipse, 点击Help->Install New Software... 在弹出的对话框中,点Add 按钮. Name中填:Pydev Lo ...
- GitStack系统RCE漏洞学习
漏洞简介 漏洞简情 漏洞程序 GitStack 影响版本 <=2.3.10 漏洞类型 RCE 漏洞评价 高危 漏洞编号 CVE-2018-5955 漏洞程序介绍 GitStack是一款基于Pyt ...
- 【CF653G】Move by Prime 组合数
[CF653G]Move by Prime 题意:给你一个长度为n的数列$a_i$,你可以进行任意次操作:将其中一个数乘上或者除以一个质数.使得最终所有数相同,并使得操作数尽可能小.现在我们想要知道$ ...