• MySQL -- 创建用户 CREATE USER 、GRANT语句


    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 时所用主机的名字。如果在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。

    3) IDENTIFIED BY子句

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

    2) 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. 使用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 语句修改密码、更改权限。

  • 相关阅读:
    centos 安装 TortoiseSVN svn 客户端
    linux 定时任务 日志记录
    centos6.5 安装PHP7.0支持nginx
    linux root 用户 定时任务添加
    composer 一些使用说明
    laravel cookie写入
    laravel composer 安装指定版本以及基本的配置
    mysql 删除重复记录语句
    linux php redis 扩展安装
    linux php 安装 memcache 扩展
  • 原文地址:https://www.cnblogs.com/gengyufei/p/13378482.html
Copyright © 2020-2023  润新知