首页 > 数据库 > MySQL > 正文

mysql中账户和权限的示范分析

2024-07-24 12:33:42
字体:
来源:转载
供稿:网友
  当客户端连接 MySQL 服务器时,必须提供有效的身份认证,例如用户名和密码。当用户执行任何数据库操作时,服务器将会验证用户是否具有相应的权限,例如查询表需要 SELECT 权限,删除对象需要 DROP 权限。
 
  MySQL 使用 CREATE USER 语句创建用户,基本语法如下:
 
  CREATE USER [IF NOT EXISTS] account_name
  IDENTIFIED BY 'password';
  其中,account_name 是账户名称;账户名称分为两个部分:用户名(user_name)和主机名(host_name),使用 % 连接。IDENTIFIED BY 用于指定用户的密码。IF NOT EXISTS 用于避免创建重名账户时产生错误信息。
 
  MySQL 中的账户信息存储在系统数据库 mysql 的 user 表中:
 
  mysql> select host, user from mysql.user;
  +-----------+------------------+
  | host      | user             |
  +-----------+------------------+
  | localhost | dev01            |
  | localhost | mysql.infoschema |
  | localhost | mysql.session    |
  | localhost | mysql.sys        |
  | localhost | root             |
  +-----------+------------------+
  5 rows in set (0.00 sec)
  除了 dev01@localhost 之外,其他 4 个用户都是初始化创建的系统用户。
 
  除了基本语法之外,创建用户时还可以指定更多选项:
 
  resource_option: {
      MAX_QUERIES_PER_HOUR count
    | MAX_UPDATES_PER_HOUR count
    | MAX_CONNECTIONS_PER_HOUR count
    | MAX_USER_CONNECTIONS count
  }
  resource_option 用于限制该用户对系统资源的使用:
 
  MAX_QUERIES_PER_HOUR,每小时允许执行的查询次数。默认为 0 ,表示没有限制;
  MAX_UPDATES_PER_HOUR,每小时允许执行的更新次数。默认为 0 ,表示没有限制;
  MAX_CONNECTIONS_PER_HOUR,每小时允许执行的连接次数。默认为 0 ,表示没有限制;
  MAX_USER_CONNECTIONS,该用户并发连接的数量。默认为 0 ,表示没有限制;此时用户的并发连接数由系统变量 max_user_connections 决定。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表