MySQL用户管理

2023-06-13 16:34:37 1664

MySQL用户管理

创建/授权用户:

有两种方式创建MySQL授权用户

方法一、通过insert语句直接操作MySQL系统权限表(此处不再赘述)

方法二、执行create user/grant命令(推荐)

注意:

  • 在试用grant命令创建用户时要注意了,在MySQL5.7.7版本前,如果被授权的用户不存在,那么grant语句会自动创建新的账户,除非设置参数sql_mode 包含 “NO_AUTO_CREATE_USER” 。

  • 但从5.7.7版本开始,默认的sql_mode就包含“NO_AUTO_CREATE_USER” (grant语句不再创建新的账户)

  • 因此,如果你是用的MySQL版本较新,要注意语法了,需要先用create user创建用户,再用grant命令赋权限;

一、创建用户格式

创建用户命令一般格式:

create user [用户名]@[访问地址] identified by [密码]

举例1:创建zhangsan用户,只是创建用户并没有权限,'localhost'表示只能在本地登录,无法通过远程连接;密码是 password

CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY 'password';

举例2:创建lisi用户,只是创建用户并没有权限,密码为 password,%通配符表示任何主机都可以连接(可以远程连接),

CREATE USER 'lisi'@'%' IDENTIFIED BY 'password';

举例3:(5.7.7版本前)的创建用户并赋予RELOAD,PROCESS权限 ,在所有的库和表上;.:代表所有的库表

GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost' identified by '123456';

二、授权格式

grant [权限1,权限2,权限3] on *.* to user@'host' identified by 'password'

常用权限:all privileges、create、drop、select、insert、delete、update

例如,给"zhangsan" 用户管理员权限,并且允许该用户继续给别的用户赋权限

grant all privileges on *.* to 'zhangsan'@'192.168.1.%' with grant option;mysql

  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。

  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user

  • to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:'zhangsan'@'192.168.1.%',表示zhangsan这个用户只能在192.168.0.* IP段登录

  • with grant option:通过在grant语句的最后使用该子句,就允许被授权的用户把得到的权限继续授给其它用户

注:使用GRANT添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个UPDATE权限,那么该用户就同时拥有了SELECT和UPDATE权限。

三. 删除 mysql 用户

drop user admin@'localhost';

四. 修改 mysql 用户密码

修改用户密码的方式包括以下三种:

-- 第一种
ALTER USER 'chenhh'@'localhost' IDENTIFIED BY 'mypassword';
-- 第二种
SET PASSWORD FOR 'chenhh'@'localhost' = PASSWORD('mypassword');
-- 第三种
GRANT USAGE ON *.* TO 'chenhh'@'localhost' IDENTIFIED BY 'mypassword';

如在数据库外命令行中,通过:mysqladmin -u用户名 -p旧的密码 password 新密码

shell> mysqladmin -u user_name -h host_name password "new_password"

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: