首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 数据库系统概述
1.1.1 数据库技术的发展
1.1.2 数据库系统的组成
1.2 数据模型
1.2.1 数据模型的概念
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
2.1 了解MySQL
2.1.1 MySQL数据库的概念
2.1.2 MySQL的优势
2.1.3 MySQL的发展史
2.2 MySQL 8.0的新特性
2.3 MySQL的应用环境
2.4 MySQL服务器的安装和配置
2.4.1 MySQL服务器安装包的下载
2.4.2 MySQL服务器的安装
2.4.3 启动、连接、断开和停止MySQL服务器
2.4.4 打开MySQL 8.0 Command Line Client
2.5 如何学好MySQL
第3章 使用MySQL图形化管理工具
3.1 安装phpMyAdmin图形化管理工具
3.1.1 phpMyAdmin图形化管理工具简介
3.1.2 下载phpstudy集成开发环境
3.1.3 下载phpMyAdmin
3.1.4 打开phpMyAdmin
3.2 数据库操作管理
3.2.1 创建数据库
3.2.2 修改和删除数据库
3.3 管理数据表
3.3.1 创建数据表
3.3.2 修改数据表
3.3.3 删除数据表
3.4 管理数据记录
3.4.1 使用SQL语句插入数据
3.4.2 使用SQL语句修改数据
3.4.3 使用SQL语句查询数据
3.4.4 使用SQL语句删除数据
3.4.5 通过form表单插入数据
3.4.6 浏览数据
3.4.7 搜索数据
3.5 导入/导出数据
3.5.1 导出MySQL数据库脚本
3.5.2 导入MySQL数据库脚本
3.6 设置编码格式
3.7 添加服务器新用户
3.8 重置MySQL服务器登录密码
4.1 认识数据库
4.1.1 数据库基本概念
4.1.2 数据库常用对象
4.1.3 系统数据库
4.2 创建数据库
4.2.1 使用CREATE DATABASE语句创建数据库
4.2.2 使用CREATE SCHEMA语句创建数据库
4.2.3 创建指定字符集的数据库
4.2.4 创建数据库前判断是否存在同名数据库
4.3 查看数据库(SHOW命令)
4.4 选择数据库(USE命令)
4.5 修改数据库(ALTER命令)
4.6 删除数据库(DROP命令)
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(一)
小册名称:MySQL从入门到精通(一)
### 3.7 添加服务器新用户 在MySQL数据库管理中,用户管理是确保数据安全和访问控制的重要环节。添加新用户不仅能够满足不同用户的访问需求,还能通过权限设置来细化访问控制,增强数据库的安全性。本章节将详细介绍如何在MySQL服务器上添加新用户,包括用户的创建、密码设置、权限分配等关键步骤。 #### 3.7.1 前提条件 在开始添加新用户之前,请确保你拥有足够的权限来执行这些操作。通常,你需要以root用户或具有足够权限的其他用户身份登录MySQL服务器。 #### 3.7.2 创建新用户 在MySQL中,可以使用`CREATE USER`语句来创建新用户。这个语句允许你指定用户的名称、认证插件(默认为`mysql_native_password`),以及是否需要为用户创建密码。 **基本语法**: ```sql CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ``` - `username`:新用户的用户名。 - `host`:用户可以从哪个主机连接到MySQL服务器。可以是具体的主机名、IP地址,或使用通配符如`%`(表示任意主机)。 - `password`:用户的密码。为了安全起见,强烈建议使用复杂且难以猜测的密码。 **示例**: ```sql CREATE USER 'john_doe'@'localhost' IDENTIFIED BY 'StrongPassword123'; ``` 上述命令创建了一个名为`john_doe`的用户,该用户只能从`localhost`连接到MySQL服务器,其密码为`StrongPassword123`。 如果你希望用户能从任何主机连接到数据库服务器,可以使用`%`作为`host`值: ```sql CREATE USER 'jane_smith'@'%' IDENTIFIED BY 'AnotherStrongPass'; ``` **注意**: 使用`%`作为`host`时,应谨慎考虑,因为这会增加数据库暴露给未授权访问的风险。 #### 3.7.3 设置密码(对于已存在用户) 如果用户在创建时未设置密码,或者你需要更改现有用户的密码,可以使用`ALTER USER`语句或`SET PASSWORD`语句。 **使用`ALTER USER`**: ```sql ALTER USER 'username'@'host' IDENTIFIED BY 'new_password'; ``` **示例**: ```sql ALTER USER 'john_doe'@'localhost' IDENTIFIED BY 'NewerPassword456'; ``` **使用`SET PASSWORD`(不推荐,可能在某些版本中不支持)**: ```sql SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password'); ``` 由于`PASSWORD()`函数已被视为不推荐使用的旧功能,推荐使用`ALTER USER`或MySQL 5.7.6及以上版本中的`CREATE USER`/`IDENTIFIED BY`语法。 #### 3.7.4 分配权限 创建用户后,默认情况下该用户没有任何访问数据库的权限。你需要使用`GRANT`语句为用户分配相应的权限。 **基本语法**: ```sql GRANT permission_type ON database_name.table_name TO 'username'@'host'; ``` - `permission_type`:可以分配的权限类型,如`SELECT`、`INSERT`、`UPDATE`、`DELETE`等,或者使用`ALL PRIVILEGES`来分配所有权限。 - `database_name.table_name`:指定权限作用的数据库和表。使用`*.*`表示所有数据库和表。 **示例**: 为`john_doe`用户分配在`employees`数据库上所有表的查询(`SELECT`)和更新(`UPDATE`)权限: ```sql GRANT SELECT, UPDATE ON employees.* TO 'john_doe'@'localhost'; ``` 或者,如果你想给予用户所有权限: ```sql GRANT ALL PRIVILEGES ON employees.* TO 'john_doe'@'localhost'; ``` **注意**: 在分配权限后,应该使用`FLUSH PRIVILEGES;`命令来使权限更改立即生效。然而,在大多数情况下,直接使用`GRANT`语句时,MySQL会自动刷新权限,因此这个命令通常是多余的。 #### 3.7.5 查看和修改用户权限 要查看用户的权限,可以使用`SHOW GRANTS`语句。 **示例**: ```sql SHOW GRANTS FOR 'john_doe'@'localhost'; ``` 如果需要修改用户的权限,可以使用`REVOKE`语句撤销不需要的权限,然后使用`GRANT`语句重新分配权限。 **撤销权限示例**: ```sql REVOKE UPDATE ON employees.* FROM 'john_doe'@'localhost'; ``` #### 3.7.6 删除用户 如果用户不再需要访问数据库,可以将其删除以减少潜在的安全风险。 **基本语法**: ```sql DROP USER 'username'@'host'; ``` **示例**: ```sql DROP USER 'jane_smith'@'%'; ``` 删除用户后,与该用户相关的所有权限和授权也将被移除。 #### 3.7.7 安全性最佳实践 - **使用强密码**:确保为所有用户设置复杂且难以猜测的密码。 - **限制访问范围**:尽量避免使用`%`作为`host`值,以减少潜在的远程访问风险。 - **定期审计权限**:定期检查用户的权限设置,确保只有必要的权限被分配。 - **使用角色**:在MySQL 8.0及以上版本中,可以使用角色来管理权限,从而简化权限管理过程。 - **加密连接**:配置MySQL以使用SSL/TLS加密连接,增加数据传输的安全性。 通过以上步骤,你可以在MySQL服务器上成功添加新用户,并根据需要为其分配相应的权限。记住,用户管理是确保数据库安全的重要方面,应当给予足够的重视和关注。
上一篇:
3.6 设置编码格式
下一篇:
3.8 重置MySQL服务器登录密码
该分类下的相关小册推荐:
SQL零基础到熟练应用(增删改查)
细说MySQL(零基础到高级应用)
MySQL从入门到精通(五)
MySQL从入门到精通(二)
MySQL从入门到精通(四)
MySQL从入门到精通(三)
MySQL8.0入门与实践
MySQL必会核心问题
MySQL 实战 45 讲