《MySQL入门很简单》学习笔记(15)之第15章MySQL用户管理(关键词:MySQL/用户管理/权限表/普通用户/root用户)
来源:互联网 发布:jq遍历json数组 编辑:程序博客网 时间:2024/05/29 05:02
第15章 MySQL用户管理
MySQL用户主要包括普通用户和root用户。
root用户是超级管理员,拥有所有的权限,包括: 创建用户; 删除用户; 修改普通用户的账户、权限等。 普通用户只拥有创建该用户时赋予它的权限。
15.1 权限表
安装MySQL时,会自动安装一个名为mysql的数据库。 mysql数据库下面存储的都是权限表。 这些权限表中,最重要的是: user表; db表; host表; 除此之外,还有: tables_priv表; columns_priv表; proc_priv表。
15.1.1 user表
user表是MySQL中最重要的一个权限表。 DESC语句可以查看user表的基本结构。 user表有39个字段,大致可以分为4类: 用户列; 权限列; 安全列; 资源控制列。
1. 用户列
user表的用户列包括:
Host,表示主机名; User,表示用户名; Password,表示密码。详见书上。
2. 权限列
user表的权限列包括Select_priv、Insert_priv等以priv结尾的字段。 这些字段决定了用户的权限。包括: 查询权限、修改权限等普通权限,用于操作数据库; 关闭服务、超级权限、加载用户等高级管理权限,用于对数据库进行管理。 详见书上。
3. 安全列
user表的安全列只有4个字段,分别是: ssl_type ssl_cipher x509_issuer x509_subject
资源控制列
user表的4个资源控制列是: max_questions,规定每小时可以允许执行多少次查询; max_updates,规定每小时可以允许执行多少次更新; max_connections,规定每小时可以建立多少连接; max_user_connections,规定单个用户可以同时具有的连接数。 这些字段的默认值为0,表示没有限制。
15.1.2 db表和host表
db表和host表也是MySQL中非常重要的权限表。
db表中存储了某个用户对一个数据库的权限。 db表比较常用,host表很少用到。 DESC语句可以查看这2个表的基本结构。
db表和host表的字段大致可以分为两类:用户列、权限列。
1. 用户列
db表的用户列有3个字段,分别是: Host,表示主机名; Db,表示数据库名; User,用户名。 host表是db表的扩展。如果db表中找不到Host字段的值,就需要到host表中去寻找。但host表很少用到,通常db表的设置已经满足要求了。
2. 权限列
db表和host表的权限列几乎一样,只是db表中多了一个Create_routine_priv字段和Alter_routine_priv字段。这两个字段决定用户是否具有创建和修改存储过程的权限。 详见书上。
15.1.3 tables_priv表和columns_priv表
tables_priv表可以对单个表进行权限设置。 colums_priv表可以对单个数据列进行权限设置。 DESC语句可以查看这两个表的基本结构。
详见书上。
15.1.4 procs_priv表
procs_priv表可以对存储过程和存储函数进行权限设置。 DESC语句可以查看procs_priv表的基本结构。
15.2 账户管理
包括:
登录和退出MySQL服务器; 创建用户; 删除用户; 密码管理; 权限管理等。
15.2.1 登录和退出MySQL服务器
15.2.2 新建普通用户
在MySQL中: CREATE USER语句可以创建新的用户; INSERT语句可以在mysql.user表中添加用户; GRANT语句可以新建用户。
详见书上。
15.2.3 删除普通用户
在MySQL中,删除普通用户的方法包括: 使用DROP USER语句; 使用DELETE语句。
详见书上。
15.2.4 root用户修改自己的密码
使用mysqladmin命令来修改root用户的密码
语法:mysqladmin -u username -p password "new_password";
修改mysql数据库下的user表
使用UPDATE语句,语法:UPDATE mysql.user SET Password=PASSWORD("new_password") WHERE User="root" AND Host="locahost";
执行了UPDATE语句之后,需要执行FLUSH PRIVILEGES语句来加载权限。
使用SET语句来修改root用户的密码
SET PASSWORD=PASSWORD("new_password");
15.2.5 root用户修改普通用户密码
root用户登录服务器后,修改普通用户密码的方式包括:
使用SET语句; 使用UPDATE语句,修改user表; GRANT语句。
15.2.6 普通用户修改密码
语法:
SET PASSWORD=PASSWORD('new_password');
15.2.7 root用户密码丢失的解决办法
步骤:
1. Linux中,
使用mysqld_safe来启动MySQL服务: mysqld_safe --skip-grant-tables user=mysql也可以使用/etc/init.d/mysql来启动MySQL服务: /etc/init.d/mysql start --mysqld --skip-grant-tables
2. 登录root用户,并且设置新的密码
通过上述方式启动MySQL服务以后,可以不输入密码就登录root用户。登录以后,可以使用UPDATE语句来修改密码。
mysql -u root(亲测会出现”Access denied”)
3. 加载权限表
修改完密码以哦户,必须用FLUSH PRIVILEGES语句来加载权限表。加载权限表后,新密码开始有效。而且MySQL服务器开始进行权限认证。用户必须输入用户名和密码才能登录MySQL数据库。
15.3 权限管理
15.3.1 MySQL的各种权限
15.3.2 授权
MySQL中,使用GRANT关键字来为用户设置权限。
MySQL中,必须拥有GRANT权限的用户才可以执行GRANT语句。语法:
详见书上。
15.3.3 收回权限
收回权限就是取消某个用户的某些权限。
MySQL中,可以使用REVOKE关键字来为用户设置权限。
语法:
详见书上。
15.3.4 查看权限
MySQL中,
可以使用SELECT语句来查询user表中各用户的权限; 可以直接使用SHOW GRANTS语句来查看权限;
详见书上。
15.6 常见问题及解答
- mysqladmin命令不能修改普通用户的密码?
- 新创建的MySQL用户不能在其他机器上登录MySQL数据库?
参考文献:
1.《MySQL入门很简单》。
阅读全文
0 0
- 《MySQL入门很简单》学习笔记(15)之第15章MySQL用户管理(关键词:MySQL/用户管理/权限表/普通用户/root用户)
- MySQL入门很简单-学习笔记 - 第15章 MySQL用户管理
- MySQL学习之:用户管理(添加用户,删除用户,添加权限,查看权限,密码等)
- 《MySQL入门很简单》学习笔记(22)之第22章驾校学员管理系统(关键词:数据库/MySQL)
- mysql 用户管理,权限管理,新建用户
- Mysql用户结构,用户管理,权限管理
- MySQL用户管理笔记
- MySQL(用户和权限管理)
- mysql学习-用户管理
- MySQL笔记-mysql用户管理
- MYSQL入门学习之二十一:MYSQL用户管理
- MySQL中用户及权限管理学习
- Mysql用户与权限管理
- MySQL - 用户及权限管理
- MySQL - 用户及权限管理
- Mysql用户与权限管理
- Mysql用户与权限管理
- MySQL - 用户及权限管理
- 明明的随机数
- 面试题03:Sum of odd numbers
- SQL查询入门(中篇)
- eclipse 安装maven插件
- 计算机系统进制概述与转换
- 《MySQL入门很简单》学习笔记(15)之第15章MySQL用户管理(关键词:MySQL/用户管理/权限表/普通用户/root用户)
- codeblocks快速注释多行以及取消注释
- Codeforces 853C 树状数组
- 菜鸡学习之归并排序(分治法)------学习算法记录2
- 一、计算机网络之TCP/IP协议
- Jquery实现$.fn.extend和$.extend函数
- Jquery练习题—实现分组添加功能
- 程序4
- SQL查询入门(下篇)