mysql如何创建新用户

如题所述

创建新用户

我们介绍如何设置新用户的帐号详细信息、帐号限制和 SSL 设置。


“常规”选项卡

点击对象工具栏上的“新建用户”按钮将打开无标题的用户选项卡。它包含五个选项卡,分别为“常规”、“高级”、“服务器权限”、“权限”和“SQL 预览”。我们已在第 1 部分中介绍了“常规”选项卡,但我们将在此快速回顾一下。在“常规”选项卡上,我们需要提供:

    “用户名”

    数据库“主机”

加密“插件”。从下拉列表中选择“mysql_native_password”或“sha256_password”

    “密码”

    “密码过期策略”

     设置密码策略

    MySQL 允许数据库管理员手动设置帐号密码过期,并使用 MySQL mysql_native_password 或 sha256_password 内置身份验证插件建立自动密码过期的策略。
    Navicat 通过下拉列表提供几个选项,摘要了使用 PASSWORD EXPIRE 语句设置密码到期的常用 MySQL 机制。他们是:

    DEFAULT:将密码过期时间长度设置为数据库的默认值。在版本 5.7.11 之前,默认值为 360 天。从版本 5.7.11 开始,默认值为 0 天,这能有效地禁用自动密码过期。

    IMMEDIATE:使帐号密码过期,从而强制用户更新它。

    INTERVAL:指定当前密码过期的天数。

    NEVER:允许当前密码无限期保持有效状态。对脚本和其他自动化过程很有用。

这里举一个例子:


    “高级”选项卡

    你可以在此处找到帐号限制和 SSL 的设置。


    帐号限制
    MySQL 允许限制个人帐号使用各种服务器资源,以避免任何一个用户独占资源。限制包括:

    一个帐号每小时可以发出的查询数。

    一个帐号每小时可以发出的更新数。

    一个帐号每小时可以连接到服务器的次数。

    一个帐号可连接到服务器的总数。

    这些等同于高级选项卡中的字段:“每小时最大查询数”、“每小时最大更新数”、“每小时最大连接数”和“最大用户连接数”。这些字段每一个都接受零(0)或正整数的值。


    SSL 设置
    要使用加密连接,系统中必须有 OpenSSL 或 yaSSL。此外,MySQL 服务器需要使用 TLS 支持构建,并正确配置为使用 OpenSSL 或 yaSSL 的其中一个。请注意,术语 SSL,指的是在 TLS 之前的现在不安全的旧协议。尽管 MySQL 仅使用其更安全(TLS)的后继协议,但出于兼容性原因仍在许多变量名和选项中使用。


    “SSL 类型”下拉字段映射到 mysql.user 表的 ssl_type 列,该列仅接受某些值:ANY、SPECIFIED 和 X509(以及 '' 表示 NONE)。


    此外,MySQL GRANT 语句还接受 ISSUER、SUBJECT 和 CIPHER 选项。这些选项可以按任何顺序组合在一起,而且如果你使用它们中的任何一个,则 REQUIRE X509 是隐式的。
    这是一个 GRANT 语句,紧接着等效的 Navicat“高级”选项卡:
    GRANT USAGE ON *.* TO 'bob_s'@'localhost' REQUIRE SUBJECT '/CN=http://www.mydom.com/O=My Dom, Inc./C=US/ST=Oregon/L=Portland' AND ISSUER '/C=FI/ST=Somewhere/L=City/ O=Some Company/CN=Peter Parker/[email protected]' AND CIPHER 'SHA-DES-CBC3-EDH-RSA';

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-03
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):
1.新建用户
  1.1 登录MYSQL:
  @>mysql -u root -p
  @>密码
  1.2 创建用户:
  mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
  这样就创建了一个名为:test 密码为:1234 的用户。
  注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
  1.3 然后登录一下:
  mysql>exit;
  @>mysql -u test -p
  @>输入密码
  mysql>登录成功
2.为用户授权
  授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:
  @>mysql -u root -p
  @>密码
  2.2 首先为用户创建一个数据库(testDB):
  mysql>create database testDB;
  2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
   mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
  mysql>flush privileges;//刷新系统权限表
  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
  2.4 如果想指定部分权限给一用户,可以这样来写:
  mysql>grant select,update on testDB.* to test@localhost identified by '1234';
mysql>flush privileges; //刷新系统权限表
  2.5 授权test用户拥有所有数据库的某些权限:  
  mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
//test用户对所有数据库都有select,delete,update,create,drop 权限。
  //@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
 //对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。本回答被网友采纳
相似回答