安全管理

管理用户

MySQL用户账号和信息存储在名为mysql的MySQL数据库中

use mysql
SELECT user FROM mysql

mysql数据库有一个名为user的表,它包含所有用户账号。user
表有一个名为user的列,它存储用户登录名

创建用户

CREATE USER ben IDENTIFIED BY '123456';

重命名用户

RENAME USER ben TO bforta;

删除用户账号

DROP USER bforat

设置访问权限

为看到赋予用户账号的权限,使用SHOW GRANTS FOR,如下所示:
SHOW GRANTS FOR bforta;
输出:
+------------------------------------+
| Grants for bforta@% |
+------------------------------------+
| GRANT USAGE ON . TO bforta@% |
+------------------------------------+
输出结果显示用户bforta有一个权限USAGE ON .。USAGE表示根本没有权限,所以,此结果表示在任意数据库和任意表上对任何东西没有权限。
为设置权限,使用GRANT语句。GRANT要求你至少给出以下信息:
 要授予的权限;
 被授予访问权限的数据库或表;
 用户名。

授予只读权限

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

取消授予的权限

GRANT的反操作为REVOKE,用它来撤销特定的权限。下面举一个例子:
REVOKE SELECT ON crashcourse .* FROM bforta;

GRANT和REVOKE可在几个层次上控制访问权限:
 整个服务器,使用GRANT ALL和REVOKE ALL;
 整个数据库,使用ON database.*;
 特定的表,使用ON database.table;
 特定的列;
 特定的存储过程。

更多的权限授予在<<mysql必知必会>>270页

简化多次授权
GRANT SELECT, INSERT ON crashcourse .* TO bforta;

posted @ 2020-09-30 10:11  bibicode  阅读(95)  评论(0)    收藏  举报