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 用户与权限的更多相关文章

  1. Mysql 用户,权限管理的几点理解。

    前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...

  2. mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  3. MySQL Study之--MySQL用户及权限管理

    MySQL Study之--MySQL用户及权限管理     MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...

  4. 如何给mysql用户分配权限+增、删、改、查mysql用户

    在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...

  5. 入门MySQL——用户与权限

    前言:  前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...

  6. MySQL用户与权限管理

    执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...

  7. MySql 用户 及权限操作

    bin/msyql -h host -u user -p    bin/mysql -u mysql -p  本地登录 如无密码按回车直接进入mySql   bin/mysqladmin -u roo ...

  8. mysql用户管理,权限管理

    mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...

  9. mysql用户和权限管理

    用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...

  10. mysql 用户管理 权限控制

    添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...

随机推荐

  1. Fragment切换问题

    片断一: add hind @Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) { switch (check ...

  2. 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前

    //使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前 //2008年03月15日 星期六 02:35 public string DateStringFromNow(DateTim ...

  3. intellij中使用git插件将项目上传到码云

    参考帖子: git上传本地Intellij idea 项目到码云的git仓库中(评论中有彩蛋,一定要看) IntelliJ-IDEA和Git.GitHub.Gitlab的使用 使用idea上传项目到码 ...

  4. Kindeditor问题

    1.初始的时候,拿到切图,kindeditor不知道为什么就是显示不出来,只出来个文本框一样的东西 原因:样式未加载,这个是因为美工那边样式重调了,而且新项目并没有将整个插件拷贝过来,而只是拿了kin ...

  5. JavaScript 中的 Map

    很多编程语言中都有类似Map这种 键-值对 的数据结构. 可惜,JavaScript没有. 幸运的是,可以自己构建一个Map对象. 对象的定义 <script type="text/j ...

  6. [BeiJing2011]元素[贪心+线性基]

    2460: [BeiJing2011]元素 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1245  Solved: 652[Submit][Stat ...

  7. 2333: [SCOI2011]棘手的操作[离线线段树]

    2333: [SCOI2011]棘手的操作 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2325  Solved: 909[Submit][Stat ...

  8. Python虚拟开发环境pipenv

    简介 requests库的作者,requests库的作者,requests库的作者(重要的事情说三遍)的又一力作,囊落了virtualenv, pip, pipfile等作为虚拟开发环境的命令行工具 ...

  9. [转] 基于TINY4412的Andorid开发-------简单的LED灯控制

    阅读目录 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> ...

  10. Jmeter TCP取样器配置及发送图解

    最近在通过Jmeter测试TCP发送请求时,遇到相关问题,现记录 查看管方文档,TCP发送有三种启用方式: TCPClientImpl:文本数据,默认为这种 BinaryTCPClientImpl:传 ...