MySQL必知必会-24MySQL安全管理

创建用户账号
为了创建一个新用户账号,使用CREATE USER语句,

  1. CREATE USER helloworld IDENTIFIED BY 'helloworld';
IDENTIFIED指定的口令为纯文本,MySQL将在保存到user表之前对其进行加密。为了作为散列值指定口令,使用IDENTIFIED BY PASSWORD

重新命名一个用户账号
使用RENAME USER语句。

  1. RENAME USER helloworld to hello;

删除用户账号
为了删除一个用户账号,使用DROP USER语句

  1. DROP USER hello;
自MySQL5以来,DROP USER删除用户账号和相关的账号权限。

设置访问权限
创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访问权限。能登入MySQL,但不能看到数据,不能执行任何数据库操作。
查看赋予用户账号的权限,使用SHOW GRANTS FOR

  1. SHOW GRANTS FOR helloworld;
输出结果显示用户helloworld有一个权限USAGE ON *.*。
USAGE表示根本没有权限,此结果表示在任意数据库和任意表上对任何东西没有权限。

用户定义为user@host
MySQL的权限用户名和主机名结合定义。如果不指定主机名,则使用默认的主机名%(授予用户访问权限而不管主机名)

设置权限,使用GRANT语句。GRANT要求至少给出以下信息:
要授予的权限
被授予访问权限的数据库或表
用户名


  1. GRANT SELECT ON mysql_bizhibihui.* TO helloworld;
此GRANT允许用户在mysql_bizhibihui.*(mysql_bizhibihui数据库的所有表)上使用SELECT。通过只授予SELECT访问权限,用户helloworld对mysql_bizhibihui数据库中的所有数据具有只读访问权限。

每个GRANT添加(或更新)用户一个权限。MySQL读取所有授权,并根据它们确定权限。
GRANT的反操作REVOKE,用它来撤销特定的权限。

  1. REVOKE SELECT ON mysql_bizhibihui.* FROM helloworld;

GRANT和REVOKE可在几个层次上控制访问权限。
MySQL必知必会-24MySQL安全管理_第1张图片
MySQL必知必会-24MySQL安全管理_第2张图片
 使用GRANT和REVOKE,再结合上面的权限,能对用户什么能做,什么不能做具有完全的控制。

在使用GRANT和REVOKE时,用户账号必须存在,对所涉及的对象没有这个要求。允许管理员在创建数据库和表之前设计和实现安全措施。
可通过列出各权限并用逗号分隔,将多条GRANT语句串在一起。

  1. GRANT SELECT, INSERT ON mysql_bizhibihui.* TO helloworld;

更改口令
为了更改用户口令,可使用SET PASSWORD语句。

  1. SET PASSWORD FOR helloworld = Password('hello');
SET PASSWORD还可以设置自己的口令

  1. SET PASSWORD = Passwrd('123456789');
在不指定用户名时,SET PASSWORD更新当前登录的用户的口令。

你可能感兴趣的:(MySQL)