MySQL 知识量:16 - 40 - 165
MySQL服务器的安全基础是:用户应该对它们需要的数据具有适当的访问权,既不能多也不能少。具体包括以下情形:
多数用户只需要对表进行读和写,少数用户需要能创建和删除表。
某些用户需要读表,但不需要更新表。
你可能想允许用户添加数据,但不允许他们删除数据。
管理员可能需要处理用户账号的权限,但多数用户不需要。
你可能想让用户通过存储过程访问数据,但不允许他们直接访问数据。
你可能想根据用户登录的地点限制对某些功能的访问。
仅给用户提供所需的访问权就是所谓的访问控制。要进行访问控制,需要创建和管理用户账号。
MySQL有一个超级管理员账号,即root账号,它对整个MySQL服务器具有完全的控制权,在学习和练习环境中,可以使用root账号进行操作,但是,在生产环境中,绝对不要直接使用root账号,安全起见,应该创建一系列账号,提供给目标用户使用。
通过保证用户不能执行他们不应该执行的SQL语句,访问控制有助于避免因误操作造成的数据损坏。
MySQL用户账号和信息存储在名为mysql的MySQL数据库中,如果要获得所有用户账号列表信息时,可以直接查询该表信息。
use mysql; select user from user;
查询的结果类似于:
+-----------+ | user | +-----------+ | mysql.sys | | root | +-----------+
可以使用create user语句来创建新用户账号,例如:
create user bob identified by 'password';
以上SQL语句中,通过create user语句创建了一个新用户bob,并设置了登录口令“password”。当然,口令不是必须在这里给出。
再次查看用户账号信息,结果为:
+-----------+ | user | +-----------+ | bob | | mysql.sys | | root | +-----------+
通过identified by指定的口令为纯文本,MySQL在将口令保存到user表之前会对其进行加密。
要重命名用户账号,可以使用rename user语句,例如:
rename user bob to jame;
再次查看用户账号信息,结果为:
+-----------+ | user | +-----------+ | jame | | mysql.sys | | root | +-----------+
注意:在MySQL5或之后的版本才开始支持rename user语句。
使用drop user语句来删除一个用户账号(以及相关的权限)。例如:
drop user jame;
注意:在MySQL5之前,drop user语句只能删除用户账号,但不能删除相关的权限。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6