返回顶部
首页 > 资讯 > 数据库 >MySQL(96)MySQL创建用户(3种方式)
  • 220
分享到

MySQL(96)MySQL创建用户(3种方式)

mysql数据库 2023-09-04 21:09:02 220人浏览 八月长安
摘要

Mysql创建用户(3种方式) mysql 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 Mysql 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通

Mysql创建用户(3种方式)

mysql 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 Mysql 服务器

在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。
MySQL 提供了以下 3 种方法创建用户。

  1. 使用 CREATE USER 语句创建用户
  2. 在 mysql.user 表中添加用户
  3. 使用 GRANT 语句创建用户

下面根据实例详细讲解这 3 种方法。

1. 使用CREATE USER语句创建用户

可以使用 CREATE USER 语句来创建 MySQL 用户,并设置相应的密码。其基本语法格式如下:

CREATE USER <用户> [ IDENTIFIED BY [ PASSWord ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]

参数说明如下:

1) 用户

指定创建用户账号,格式为 user_name'@'host_name。这里的user_name是用户名,host_name为主机名,即用户连接 MySQL 时所用主机的名字。如果在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。

2) IDENTIFIED BY子句

用于指定用户密码。新用户可以没有初始密码,若该用户不设密码,可省略此子句。

3) PASSWORD 'password'

PASSWORD 表示使用哈希值设置密码,该参数可选。如果密码是一个普通的字符串,则不需要使用 PASSWORD 关键字。'password' 表示用户登录时使用的密码,需要用单引号括起来。

使用 CREATE USER 语句时应注意以下几点:

  • CREATE USER 语句可以不指定初始密码。但是从安全的角度来说,不推荐这种做法。
  • 使用 CREATE USER 语句必须拥有 mysql 数据库的 INSERT 权限或全局 CREATE USER 权限。
  • 使用 CREATE USER 语句创建一个用户后,MySQL 会在 mysql 数据库的 user 表中添加一条新记录。
  • CREATE USER 语句可以同时创建多个用户,多个用户用逗号隔开。

新创建的用户拥有的权限很少,它们只能执行不需要权限的操作。如登录 MySQL、使用 SHOW 语句查询所有存储引擎和字符集的列表等。如果两个用户的用户名相同,但主机名不同,MySQL 会将它们视为两个用户,并允许为这两个用户分配不同的权限集合

例 1

使用 CREATE USER 创建一个用户,用户名是 test1,密码是 test1,主机名是 localhost。SQL 语句和执行过程如下。

mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1';Query OK, 1 rows affected (0.06 sec)

结果显示,创建 test1 用户成功。

在实际应用中,我们应避免明文指定密码,可以通过 PASSWORD 关键字使用密码的哈希值设置密码。

例 2

在 MySQL 中,可以使用 password() 函数获取密码的哈希值,查看 test1 哈希值的 SQL 语句和执行过程如下:

mysql> SELECT password('test1');+-------------------------------------------+| password('test1')                         |+-------------------------------------------+| *06C0BF5B64ECE2F648B5F048A71903906BA08E5C |+-------------------------------------------+1 row in set, 1 warning (0.00 sec)

“*06C0BF5B64ECE2F648B5F048A71903906BA08E5C”就是 test1 的哈希值。下面创建用户 test1,SQL 语句和执行过程如下:

mysql> CREATE USER 'test1'@'localhost'IDENTIFIED BY PASSWORD '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C';Query OK, 0 rows affected, 1 warning (0.00 sec)

执行成功后就可以使用密码“test1”登录了。

2. 使用 INSERT 语句新建用户

可以使用 INSERT 语句将用户的信息添加到 mysql.user 表中,但必须拥有对 mysql.user 表的 INSERT 权限。通常 INSERT 语句只添加 Host、User 和 authentication_string 这 3 个字段的值。

MySQL 5.7 的 user 表中的密码字段从 Password 变成了 authentication_string,如果你使用的是 MySQL 5.7 之前的版本,将 authentication_string 字段替换成 Password 即可。

使用 INSERT 语句创建用户的代码如下:

INSERT INTO mysql.user(Host, User,  authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('hostname', 'username', PASSWORD('password'), '', '', '');

由于 mysql 数据库的 user 表中,ssl_cipher、x509_issuer 和 x509_subject 这 3 个字段没有默认值,所以向 user 表插入新记录时,一定要设置这 3 个字段的值,否则 INSERT 语句将不能执行。

例 3

下面使用 INSERT 语句创建名为 test2 的用户,主机名是 localhost,密码也是 test2。SQL 语句和执行过程如下:

mysql> INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'test2', PASSWORD('test2'), '', '', '');Query OK, 1 row affected, 1 warning (0.02 sec)

结果显示,新建用户成功。但是这时如果通过该账户登录 MySQL 服务器,不会登录成功,因为 test2 用户还没有生效。

可以使用 FLUSH 命令让用户生效,命令如下:

FLUSH PRIVILEGES;

使用以上命令可以让 MySQL 刷新系统权限相关表。执行 FLUSH 命令需要 RELOAD 权限。

注意:user 表中的 User 和 Host 字段区分大小写,创建用户时要指定正确的用户名称或主机名。

3. 使用GRANT语句新建用户

虽然 CREATE USER 和 INSERT INTO 语句都可以创建普通用户,但是这两种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。

使用 GRANT 语句创建用户的基本语法形式如下:

GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']

其中:

  • priv_type 参数表示新用户的权限;
  • database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
  • user 参数指定新用户的账号,由用户名和主机名构成;
  • IDENTIFIED BY 关键字用来设置密码;
  • password 参数表示新用户的密码。

例 4

下面使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对所有数据库的所有表都有 SELECT 权限。SQL 语句和执行过程如下:

mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3';Query OK, 0 rows affected, 1 warning (0.01 sec)

其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。

技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。教程后面会详细介绍如何使用 GRANT 语句修改密码、更改权限。

来源地址:https://blog.csdn.net/m0_54144956/article/details/131358714

您可能感兴趣的文档:

--结束END--

本文标题: MySQL(96)MySQL创建用户(3种方式)

本文链接: https://lsjlt.com/news/394385.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL(96)MySQL创建用户(3种方式)
    MySQL创建用户(3种方式) MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通...
    99+
    2023-09-04
    mysql 数据库
  • MySQL数据库——MySQL创建用户(3种方式)
    MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽...
    99+
    2023-09-05
    数据库 mysql 服务器
  • Mysql 中的三种创建用户的方式
    创建普通用户 MySQL支持使用CREATE USER语句创建用户,使用GRANT语句创建用户,也可以通过操作mysql数据库下的user数据表来创建用户。 使用CREATE USER语句创建用户 执行CREATE USER语句时,M...
    99+
    2023-08-31
    mysql 创建用户 数据库 Powered by 金山文档
  • mysql创建索引的3种方法实例
    目录1、使用CREATE INDEX创建,语法如下:2、使用ALTER语句创建,语法如下:3、建表的时候创建索引补充:mysql 创建索引原则总结1、使用CREATE INDEX创建,语法如下: CREATEINDEXi...
    99+
    2023-02-15
    mysql创建索引语句 mysql索引创建 mysql添加索引语句
  • MySQL几种创建索引的方式
    一、创建表时创建索引 key 索引名 (column); 二、表创建好后创建索引 通过Alter创建索引 ①PRIMARY  KEY(主键索引)         mysql > ALTER  TABLE  `table_name`  A...
    99+
    2023-09-01
    mysql
  • mysql 创建索引的三种方式
    1、使用CREATE INDEX创建,语法如下: CREATE INDEX indexName ON tableName (columnName(length)); 2、使用ALTER语句创建,语法如下: ALTER TABLE ...
    99+
    2023-09-07
    mysql
  • MySQL用户创建
    MYSQL用户的创建 我们现在默认使用的都是`root`用户,超级管理员,拥有全部的权限。 但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。 所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数...
    99+
    2023-10-10
    mysql 数据库
  • 3-oracle_创建用户
    oracle内部有两个建好的用户:system和sys。用户可直接登录到sys用户以创建其他用户,因为sys具有创建别的用户的权限,为什么需要创建一个新的用户,主要是sys用户权限太大了,如果某天一不小心...
    99+
    2024-04-02
  • mysql创建视图的方式有哪几种
    在MySQL中,创建视图的方式有以下几种: 使用 CREATE VIEW 语句:可以使用 CREATE VIEW 语句来创建视图,...
    99+
    2024-05-21
    mysql
  • python创建多维数组的3种方式:
    python创建多维数组的3种方式:#coding=utf-8 import numpy as np #1 image =[[(col+1)*(row+1) for col in range(5)] for row in range(3)...
    99+
    2023-01-31
    多维 数组 方式
  • mysql创建只读用户的方法
    小编给大家分享一下mysql创建只读用户的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql增加只读用户的方法:1、使用现有的root用户登录到Mysql;2、创建用户,并授权SEL...
    99+
    2024-04-02
  • mysql登录创建用户的方法
    这篇文章主要介绍mysql登录创建用户的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql登录创建用户的方法:1、使用root帐户登陆mysql,代码为【mysql -ur...
    99+
    2024-04-02
  • mysql如何创建用户
    mysql如何创建用户?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mysql如何创建用户创建用户命令:CREATE USER '...
    99+
    2024-04-02
  • mysql怎么创建用户
    在 mysql 中创建用户有以下三种方法:通过 mysql 命令行,执行 create user 语句;通过 mysql workbench,在 "users and privilege...
    99+
    2024-04-14
    mysql
  • Mysql创建json字段索引的两种方式
    目录一、前言二、通过虚拟列添加索引(Secondary Indexes and Generated Columns)三、多值索引(Using multi-valued Indexes)四、官网地址一、前言 jsON 数据...
    99+
    2023-06-09
    Mysql创建json字段索引 Mysql json创建索引
  • 3种Java创建线程的方式和区别
    在java中如何创建线程?下面本篇文章给大家介绍3种创建线程的方式以及区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在java中如果要创建线程的话,一般有3种方法:继承Thread类;实现Runnable接口;使用C...
    99+
    2017-09-19
    java入门 Java 线程
  • mysql用户创建与授权的方法
    本篇内容主要讲解“mysql用户创建与授权的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql用户创建与授权的方法”吧!前言mysql默认安装的时候是有一个root用户,这个用户有最高...
    99+
    2023-06-29
  • Mysql中怎么创建用户帐户
    这期内容当中小编将会给大家带来有关Mysql中怎么创建用户帐户,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1.CREATE USER CREATE USER us...
    99+
    2024-04-02
  • mysql创建用户并赋权
    1.创建用户 CREATE USER  "user_name"@"host"  IDENTIFIED BY  "password"; user_name:要创建用户的名字。 host:表示要这个新创建的用户允许从哪台机登陆,如果只允...
    99+
    2021-01-09
    mysql创建用户并赋权
  • MySQL创建用户与授权
    一. 创建用户 命令: CREATE USER "username"@"host" IDENTIFIED BY "password"; 说明: username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户...
    99+
    2017-07-17
    MySQL创建用户与授权
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作