MySQL基础——MySQL管理

MySQL 管理基本介绍

原因:当我们做项目开发时,可以根据不同的开发人员,赋给他相应的 MySQL 操作权限。所以,Mysql数据库管理人员(root),根据需要创建不同的用户,赋给相应的权限,供开发人员使用

MySQL 用户

  1. MySQL 中的用户,都存储在系统 数据库mysqluser 表中


select Host,User,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| Host      | User             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | $A$005$~^4GR7^Mq/fmmd%&VD.vHb3d8/0n6lqGWIwkq2K1GYGFdzLyUGSVkDpUgIJA |
+-----------+------------------+------------------------------------------------------------------------+



  1. host:允许登录的 “位置”,localhost:表示该用户只允许本机登录,也可以指定ip地址,比如:192.168.1.100
  2. user:用户名;
  3. authentication_string:密码,是通过 mysqlpassword() 函数加密之后的密码。


-- 创建新 MySQL 用户并查询基本信息
-- 解读:'Gin' @'localhost' 表示用户的完整信息,新用户用户名为 Gin,可登录 ip 为 localhost
--      identified by 'Gin' 表示 Gin 用户的登陆密码为 Gin。但是注意,在数据库中存放的密码是加密过后的密码
create user 'Gin' @'localhost' identified by 'Gin';
select host, user, authentication_string from mysql.user;
-- +-----------+------------------+------------------------------------------------------------------------+
-- | host      | user             | authentication_string                                                  |
-- +-----------+------------------+------------------------------------------------------------------------+
-- | localhost | Gin              | $A$005$o]wr{DcY:}\(/KY5fGyJT12pwVr7gSJTAOSOy3xgdLNPIUda8MSh0dCyA/ |
-- | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
-- | localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
-- | localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
-- | localhost | root             | $A$005$~^4GR7^Mq/fmmd%&VD.vHb3d8/0n6lqGWIwkq2K1GYGFdzLyUGSVkDpUgIJA |
-- +-----------+------------------+------------------------------------------------------------------------+

-- 删除用户
drop user 'Gin' @'localhost';


-- 修改密码:
-- 修改自己的密码
set password = password('密码');
-- 修改他人的密码(需要有修改密码权限):
set password for '用户名'@'登陆位置' = password('密码');
alter user '用户名'@'登陆位置' identified by '密码';

在这里插入图片描述

给用户授权

在这里插入图片描述

基本语法:

grant all on 库.对象名 to '用户名'@'登录位置' [identified by'密码']

说明:
  1. 权限列表,多个权限用逗号分开
    grant select on .......
    grant select,delete,create on ...….
    grant all [privileges] on ..... //表示赋予该用户在该对象上的所有权限
  2. 特别说明
    *.*:代表本系统中的所有数据库的所有对象(表,视图,存储过程)
    库.*:表示某个数据库中的所有数据对象(表,视图,存储过程等)
  3. identified by 可以省略,也可以写出
    (1)如果用户存在,就是修改该用户的密码。
    (2)如果该用户不存在,就是创建该用户!

-- 演示用户权限的管理

-- 创建用户 Vodka ,密码 Vodka ,本地登录
CREATE USER 'Vodka'@'localhost' IDENTIFIED BY 'Vodka';


-- 使用 root 用户创建新数据库 testdb,建立表 news
CREATE DATABASE testdb;
USE testdb;
-- 创建表
CREATE TABLE news(
id INT,
content VARCHAR(32)
);
-- 插入一条测试数据
INSERT INTO news VALUES(100, '北京新闻');
-- 查询测试数据
SELECT * FROM news;

-- 给 Vodka 用户授予 查询(select) 和 插入(insert) news表 的权限
GRANT SELECT, INSERT ON testdb.news TO 'Vodka'@'localhost';
-- 继续赋予新权限
GRANT UPDATE ON testdb.news TO 'Vodka'@'localhost';

-- 修改 Vodka 的密码为 root
-- SET PASSWORD FOR 'Vodka'@'localhost' = PASSWORD('root');
ALTER USER 'Vodka'@'localhost' IDENTIFIED BY 'Vodka';

-- 回收 Vodka 用户在 testdb.news 表的所有权限
-- REVOKE ALL ON testdb.news FROM 'Vodka'@'localhost';
REVOKE SELECT, INSERT, UPDATE ON testdb.news FROM 'Vodka'@'localhost';

-- 删除 Vodka 用户
DROP USER 'Vodka'@'localhost';


细节

  1. 在创建用户的时候,如果不指定Host,则为 %% 表示表示所有IP都有连接权限 create user XXX;
  2. 你也可以这样指定 create user 'xxx'@'192.168.%.%':表示 xxx 用户在192.168.*.* 的 ip 可以登录 mysql
  3. 在删除用户的时候,如果host 不是 %,需要明确指定 '用户'@'host值'


-- 在创建用户的时候,如果不指定Host,则为 %,% 表示表示所有IP都有连接权限 create user XXX;
CREATE USER Sherry;

SELECT HOST,USER FROM mysql.user;

-- 你也可以这样指定 `create user 'xxx'@'192.168.%.%'`:表示 xxx 用户在`192.168.*.*` 的 ip 可以登录 mysql
CREATE USER 'Gin'@'192.168.%.%';

-- 在删除用户的时候,如果host 不是 %,需要明确指定 '用户'@'host值'
DROP USER Sherry; -- 默认就是 'Sherry'@'%'
DROP USER 'Gin'@'192.168.%.%';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值