mysq用户权详细细记录

277 阅读2分钟
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