一、MySQL用户
1、MySQL中用户管理
MySQL中的用户,都存储在系统数据库mysql中user表中
user表的重要字段说明:
1、host:允许登录的“位置”,localhost表示该用户只允许本地登录,也可以指定ip地址,比如:192.168.1.100
2、user:用户名
3、authentication_string:密码,是通过mysql的password()函数加密之后的密码
2、创建用户
CREATE USER ‘用户名’ @‘允许登录位置’ identified by '密码'
创建用户,同时指定密码
-- 创建用户 xiaoming 密码 123 , 从本地登录
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY '123'
3、删除用户
DROP USER ‘用户名’ @‘ 允许登录位置’;
4、修改用户密码
1、修改自己的密码:set password = password(‘密码’);
2、修改别人的密码(需要有修改用户密码权限):
set password for '用户名' @‘登录位置’ = password(‘密码’)
5、MySQL中的权限
5.1、给用户授权
5.2、回收用户权限
-- 创建用户 xiaoming 密码 123 , 从本地登录
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY '123' -- 使用 root 用户创建 testdb ,表 news
CREATE DATABASE testdb
CREATE TABLE news (
id INT , content VARCHAR(32));
-- 添加一条测试数据
INSERT INTO news VALUES(100, '北京新闻');
SELECT * FROM news;
-- 给 shunping 分配查看 news 表和 添加 news 的权限
GRANT SELECT , INSERT
ON testdb.news
TO 'xiaoming'@'localhost'
-- 可以增加 update 权限
GRANT UPDATE
ON testdb.news
TO 'xiaoming'@'localhost'
-- 修改 xiaoming 的密码为 abc
SET PASSWORD FOR 'xiaoming'@'localhost' = PASSWORD('abc');
-- 回收 shunping 用户在 testdb.news 表的所有权限
REVOKE SELECT , UPDATE, INSERT ON testdb.news FROM 'xiaoming'@'localhost'
REVOKE ALL ON testdb.news FROM 'xiaoming'@'localhost'
-- 删除 xiaoming
DROP USER 'xiaoming'@'localhost'
5.3、用户权限管理细节说明
1、在创建用户的时候,如果不指定 Host, 则为% , %表示表示所有 IP 都有连接权限
2、你也可以这样指定
create user 'xxx'@'192.168.1.%' 表示 xxx 用户在 192.168.1.* 的 ip 可以登录 mysql3、在删除用户的时候,如果 host 不是 %, 需要明确指定 ' 用户 '@'host 值 '
-- 说明 用户管理的细节
-- 在创建用户的时候,如果不指定 Host, 则为% , %表示表示所有 IP 都有连接权限
-- create user xxx;
CREATE USER jack
-- 你也可以这样指定
-- create user 'xxx'@'192.168.1.%' 表示 xxx 用户在 192.168.1.*的 ip 可以登录 mysql
CREATE USER 'smith'@'192.168.1.%'
-- 在删除用户的时候,如果 host 不是 %, 需要明确指定 '用户'@'host 值'
DROP USER jack -- 默认就是 DROP USER 'jack'@'%'
DROP USER 'smith'@'192.168.1.%'