Mysql服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少,换句话说,用户不能对过多的数据具有过多的访问权
考虑以下内容:
- 多数用户只需要进行读和写,但少数用户甚至需要能创建和删除表;
- 某些用户需要读表,但可能不需要更新表;
- 你可能想允许用户添加数据,但不允许他们删除数据;
- 某些用户(管理员)可能需要处理用户账号权限,但多数用户不需要;
不要使用root,应该严肃对待oot登陆使用,仅在绝对需要使用它(或者在你不能登陆其他管理账号时使用),不应该在日常的操作中使用root
查看所有账号列表
USE mysql;
SELECT user FROM user;
Mysql数据库有一个名为user的表,它包含所有用户账户
创建用户账号
使用CREATE USER 语句可以创建一个新账号
CREATE USER admin IDENTIFIED BY '123456'
CREATE USER创建一个新帐号是不一定需要给出口令,不过这个例子用IDENTIFIED BY'123456' 给出了一个口令
指定散列口令 IDENTIFIED BY 指令的口令为纯文本,将在保存到user表之前对其进行加密,为了作为散列值指定口令,使用 IDENTIFIED BY PASSWORD
账号重命名
RENAME USER admin TO user
注意:仅在5.0之后支持
删除账号
DROP USER admin
注意:mysql5之前只删除账号,不删除相关的权限,如果使用旧版本的,需要删除与账号相关的权限,然后再使用DROP USER删除账号,否则下次创建同样名字的账号时,就算没有赋予权限,也会带着上一次没有删除干净的权限
查看账户权限
SHOW GRANTS FOR admin
授予权限
GRANT SELECT ON user.* TO admin
允许用户在user的数据库上拥有 SEELCT 权限
撤销权限
REVOKE SELECT ON user.* FROM admin
撤销用户在user的数据库上拥有 SEELCT 权限
列出几个常用的:
| 权限 | 说明 |
|---|---|
| ALL | 除了GRANT OPTION以外的所有权限 |
| SELECT | 使用SELECT |
| UPDATE | 使用UPDATE |
| CREATE | 使用CREATE |
| DRAP | 使用DRAP |