加入收藏 | 设为首页 | 会员中心 | 我要投稿 均轻资讯网_我爱站长网 (https://www.52junqing.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

添加mysql的用户名和密码是什么语句?

发布时间:2022-10-20 10:56:23 所属栏目:MySql教程 来源:
导读:  mysql中添加用户名和密码的语句:1、CREATE USER语句,可以创建普通用户,并设置相应的密码;2、INSERT语句,可以新建普通用户,并设置相应的密码;3、GRANT语句,新建用户mysql主机名,并设置相应的密码和用户

  mysql中添加用户名和密码的语句:1、CREATE USER语句,可以创建普通用户,并设置相应的密码;2、INSERT语句,可以新建普通用户,并设置相应的密码;3、GRANT语句,新建用户mysql主机名,并设置相应的密码和用户权限。
 
  mysql 主机_mysql主机名_连接到mysql主机
 
  程序员必备接口测试调试工具:立即使用
 
  Apipost = Postman + Swagger + Mock + Jmeter
 
  Api设计、调试、文档、自动化测试工具
 
  后端、前端、测试,同时在线协作,内容实时同步
 
  (推荐教程:mysql视频教程)
 
  MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。
 
  在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。
 
  MySQL 提供了以下 3 种方法来创建用户,添加用户名和密码。
 
  下面根据实例详细讲解这 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 语句时应注意以下几点:
 
  新创建的用户拥有的权限很少,它们只能执行不需要权限的操作。如登录 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']
  登录后复制
 
  其中:
 
  例 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 语句修改密码、更改权限。
 

(编辑:均轻资讯网_我爱站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!