MySQL常用权限操作

** ubuntu mysql 8.0.21修改root密码 **

1、查看默认安装密码:

sudo cat /etc/mysql/debian.cnf

2、 登录mysql

mysql -u debian-sys-maint -p

3、更新密码并刷新权限

mysql> use mysql;
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql> mysql_native_password BY '你的密码';
mysql> flush privileges;

5.7版本操作

添加用户:

// 允许指定ip连接
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
create user '新用户名'@'localhost' identified by '密码';
// 不限制 IP(用通配符%表示)
create user '新用户名'@'%' identified by '密码';
CREATE USER 'javacui'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'javacui'@'172.20.0.0/255.255.0.0' IDENDIFIED BY '123456';
CREATE USER 'javacui'@'%' IDENTIFIED BY '123456';
CREATE USER 'javacui'@'%' IDENTIFIED BY '';
CREATE USER 'javacui'@'%';

授权

// 基本格式如下
grant all privileges on 数据库名.表名 to '新用户名'@'指定ip' identified by '新用户密码' ;// 允许访问所有数据库下的所有表
grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' ;
// 指定数据库下的指定表
grant all privileges on test.test to '新用户名'@'指定ip' identified by '新用户密码' ;

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

设置用户操作权限

// 设置用户拥有所有权限也就是管理员
grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
// 查询权限
grant select on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
// 设置用户拥有查询插入的权限 (其它操作权限说明,select查询 insert插入 delete删除 update修改)
grant select,insert on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;
// 去掉查询权限
REVOKE select ON what FROM '新用户名';

之前版本:

注:除了新建用户INSERT 和更新密码其他命令可以用(因为 user 表的 password 字段变成 authentication_string)

常用:更新密码

(SQL命令控制台执行)

UPDATE user SET PASSWORD=PASSWORD('123456') WHERE USER='ROOT' AND HOST='%';

或者(SQL命令控制台执行)

SET PASSWORD FOR root@localhost= PASSWORD('123456');

当前用户简单

SET PASSWORD = PASSWORD("newpassword");

或者(下面这个shell中执行,输入原密码和新密码)

mysqladmin -u root -p old_password password new_password

常用:赋予权限

GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

注:'root' @'%',root为你要修改的SQL用户名,%为ip,%表示权限开发所有IP都可访问,如果有具体的IP,改成IP地址即可。

** 修改完密码后记得刷新权限 **

FLUSH PRIVILEGES;

1.新建用户

mysql -u root -p
Enter password:

输入密码登录。

创建用户:

mysql> INSERT INTO mysql.user(Host, User, Password) VALUES ("localhost", "test", PASSWORD("123456"))

这样就创建了一个名为:test 密码为:123456的用户。

注意:此 localhost 指该用户只能在本地登录,不能远程登录。如果想远程登录的话,将 localhost 改为 %,表示不限制 ip。也可指定 某机器 / ip 可以远程登录。

然后登录试试:

 mysql> exit;
 $ mysql -u test -p
 Enter password:

2. 为用户授权

授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

(1) 登录MYSQL(有ROOT权限),这里以ROOT身份登录:

mysql -u root -p

(2) 首先为用户创建一个数据库(testDB):

mysql>CREATE DATABASE test_db;

(3) 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):

mysql> GRANT ALL PRIVILEGES ON test_db.* TO test@localhost IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES; //刷新权限

(4) 如果想指定部分权限给一用户,可以这样来写:

mysql> GRANT SELECT,UPDATE ON test_db.* to test@localhost IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES; //刷新权限

(5) 授权test用户拥有所有数据库的某些权限:

mysql> GRANT SELECT,DELETE,UPDATE,CREATE,DROP ON *.* to test@"%" identified by "123456";

3. 删除用户

mysql> DELETE FROM user WHERE User = 'test' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> DROP DATABASE test_db; //删除用户的数据库

最后删除账户及权限:

mysql> DROP USER 用户名@'%';
mysql> DROP USER 用户名@localhost;

MySQL常用权限操作的更多相关文章

  1. mysql用户权限操作

    mysql用户权限操作1.创建用户mysql -urootcreate database zabbix default charset utf8;grant all on zabbix.* to za ...

  2. Mysql常用表操作 | 单表查询

    160905 常用表操作 1. mysql -u root -p 回车 输入密码   2. 显示数据库列表 show databases     3. 进入某数据库 use database data ...

  3. Mysql常用基础操作(备忘录)

    常常忘记mysql的一些命令行操作,甚至于说,比较复杂的sql格式记不住或忘记了,也可能根本不会考虑去记,因此,做一下汇总,当下次出现恍惚时不至于去百度挨个找,有时就是记不起来,但是只要给点药引子,立 ...

  4. mysql常用的操作

    数据库的常用操作:create database db1; #创建数据库show databases; #查看所有数据库show create database db1;#查看创建的指定数据库alte ...

  5. mysql常用语法操作

    一.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  6. MySql常用数据操作

    1.数据库操作: MySQL服务管理命令: 1.启动服务:sudo service mysql start 2.停止服务:sudo service mysql stop 3.重新启动服务:sudo s ...

  7. mysql数据权限操作

    1.创建新用户 通过root用户登录之后创建 >> grant all privileges on *.* to testuser@localhost identified by &quo ...

  8. Mysql 常用数据库操作

    一.数据库操作: 1.查看数据库: >SHOW DATABASES; 2.创建数据库: >CREATE DATABASE db_name; //db_name为数据库名 3.使用数据库: ...

  9. MySQL常用的操作整理

    MySQL是一个十分轻便的dbms,轻便.灵活,更适用于中小型数据的存储与架构.MySQL被数以万计的网站采用,从5版本以后,陆续支持了游标.触发器.事务.存储过程等高级应用,这也给MySQL的易用性 ...

随机推荐

  1. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  2. mybatis-1-hellomybatis

    一.先创建一个mybatis的数据表 USE `mybatis`; CREATE TABLE tbl_employee( id INT(11) PRIMARY KEY AUTO_INCREMENT, ...

  3. 前端基础js(四)

    一. js [1] html:用于显示页面 [2] css:用于描述页面的样式 [3] javaScript:用于描述页面的行为 二.js中三大部分内容 [1] 基本语法:函数.对象.事件类型(变量, ...

  4. 冒泡排序(bubble_sort)——Python实现

      # 冒泡排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A   # 冒泡排序过程 # 第一趟:以第一个数为基准,从最后一位数开始,依次与它比较, ...

  5. mongodb(27017、28017)未授权访问

    重启docker systemctl restart docker.service 下载mingodb docker pull mongo:3.6 列出镜像 docker images mongo 创 ...

  6. java.lang.RuntimeException: Cannot create a secure XMLInputFactory 解决

    客户端调用服务端cxf,服务端报 java.lang.RuntimeException: Cannot create a secure XMLInputFactory 我的cxf 版本 为  3.0. ...

  7. shell的编程规范和变量

    目录 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官" 二.用户的登录shell 三.shell脚本的构 ...

  8. 洛谷P2962题解

    题面 看到 \(n \leq 35\) ,这是一个非常小的数据,但是 \(O(2^n)\) 的暴力跑不过去,所以考虑玄学做法 \(\text{Meet in Middle}\) .就是先做左边,然后做 ...

  9. vue菜单切换

    HTML: <div id="box"> <ul> <li v-for= "(item,index) in arry"> & ...

  10. WinForm设置任务栏托盘程序

    程序设计界面如下图所示: 1.在程序初始化加载的时候设置程序图标,具体code如下: private void Form1_Load(object sender, EventArgs e) { //t ...