安全管理
管理用户
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;

浙公网安备 33010602011771号