MySQL用户、权限及密码操作

举报
看山 发表于 2021/09/29 00:53:33 2021/09/29
1.9k+ 0 0
【摘要】 1 创建用户 1.1 create user 格式如下: CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; 其中,username为用户名;hostname为主机,localhost指本地用户,通配符%指可以从远程主机登陆用户,如果不指定host,则默认为%...

1 创建用户

1.1 create user

格式如下:

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

 

其中,username为用户名;hostname为主机,localhost指本地用户,通配符%指可以从远程主机登陆用户,如果不指定host,则默认为%;password为密码,可以为空。

例如,创建用户名为user、密码为123456的用户,主机为本地,则

CREATE USER 'user'@'localhost' IDENTIFIED BY '123456';

 

创建用户名为user、密码为123456的用户,主机为192.168.1.1,则

CREATE USER 'user'@'192.168.1.1' IDENTIFIED BY '123456';

 

创建用户名为user、密码为123456的用户,则

CREATE USER 'user' IDENTIFIED BY '123456';

 

创建用户名为user,则

CREATE USER user;

 

注:这种方式需要登录mysql控制台,且登录用户需要CREATE USER权限。

1.2 insert into mysql.user

格式如下:


      INSERT INTO mysql.user(host, user, password) VALUES(hostname, username, PASSWORD(password));
      FLUSH PRIVILEGES;
  
 

其中,mysql.user是在mysql库中存储用户信息的user表,hostname表示主机名(localhost指本地用户,通配符%指可以从远程主机登陆用户),第二个password是密码(第一个password是字段)。

例如,创建用户名为user、密码为123456的用户,则


      INSERT INTO mysql.user(host, user, password) VALUES('localhost', 'user', PASSWORD('123456'));
      FLUSH PRIVILEGES;
  
 

注:因为这种方式是手动修改数据库,如果想要这种修改立马生效,还需执行FLUSH PRIVILEGES命令刷新用户权限列表,所以需要登录的用户有SELECT、UPDATE、RELOAD三种权限。

2 修改用户权限

2.1 为用户赋予权限

在MySQL中使用GRANT命令给用户授权,如果用户不存在,GRANT会自动创建用户,并进行授权。

格式如下:

GRANT privileges ON databases.tablename TO 'username'@'hostname' [INDENTIFIED BY ‘password’];

 

其中,privileges表示具体的权限名称,多个权限间通过逗号隔开;databases表示数据库,使用*表示所有数据库;tablename表示表名,使用*表示所有表;username表示用户名;hostname表示主机名;password表示密码,[]中用于创建用户时为用户添加密码。

2.2 常用权限

  • 表数据: select, update, delete, insert
  • 表结构: create, alert, drop
  • 外键: references
  • 创建临时表: create temporary tables
  • 操作索引: index
  • 视图: create view, show view
  • 存储过程: create routine, alert routine, execute
  • 所有权限: all

2.3 权限表

  • 存储过程权限表: mysql.procs_priv
  • 列权限表: mysql.columns_priv
  • 表格权限表: mysql.tables_priv
  • 用户权限表: informationschema.userprivileges(字段grantee为授权者, 字段privilege_type为权限名称)
  • 用户信息及权限: mysql.user(后缀为priv的字段的值与userprivileges的privilege_type一一对应)

2.4 查看用户权限

查看用户权限可以通过查询上面的权限表的数据进行查询,或者通过show grants命令进行查询,格式如下:

SHOW GRANTS [FOR username@hostname]

 

其中,username表示用户名,hostname表示主机名,[]中的内容可以省略,是查询当前登录用户的权限。

2.5 撤销权限

可以通过命令撤销某用户的某种权限,格式如下:

REVOKE privileges ON databease.table FROM username@hostname

 

撤销权限与赋予权限命令相似,区别在于将TO改为FROM。

3 修改用户密码

3.1 mysqladmin命令

格式如下:

mysqladmin -u USER -p password NEW_PASSWORD

 

其中,USER为用户名,NEW_PASSWORD为新密码。

该命令直接在命令行中执行,回车之后会提示输入原密码,输入正确后即可修改。

例如,设置用户user的密码为123456,原密码为654321,则


      mysqladmin -u user -p password 123456
      Enter password:******
  
 

注:上面的******是自己输入的654321。

3.2 SET PASSWORD 语句

格式如下:

SET PASSWORD FOR username@hostname=PASSWORD('password');

 

其中,username为用户名,hostname为指定的主机,password为新密码。

这种方式需要先登入mysql控制台,即通过正确用户名、密码登入。

例如:设置在localhost上的用户user的密码为123456,则

SET PASSWORD FOR user@localhost=PASSWORD('123456');

 

注:通过这种方式修改自己的密码,可以只有基本的USAGE权限;如果修改其他人的密码,需要对mysql数据库存在UPDATE权限。

3.3 UPDATE user 语句

格式如下:


      UPDATE mysql.user SET password=PASSWORD('password') WHERE user='username' and host='hostname';
      FLUSH PRIVILEGES;
  
 

其中,mysql.user表示mysql库中的user表,user表示字段为user,username为用户名,password为新密码,hostname为指定的主机。

这种方式需要先登入mysql控制台,即通过正确用户名、密码登入。

例如:设置用户user的密码为123456,则


      UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='user' and host='localhost';
      FLUSH PRIVILEGES;
  
 

注:因为这种方式是手动修改数据库,如果想要这种修改立马生效,还需执行FLUSH PRIVILEGES命令刷新用户权限列表,所以需要登录的用户有SELECT、UPDATE、RELOAD三种权限。

4 删除用户

在mysql中,可以通过直接删除mysql.user表中的数据删除用户,也可以通过drop命令删除用户,与创建用户的操作类似。

4.1 DELETE FROM mysql.user

格式如下:

DELETE FROM mysql.user WHERE user='username' and host='hostname'

 

其中,mysql.user表示mysql库中的user表,user表示字段为user,username为用户名,hostname为指定的主机。

4.2 DROP USER username

格式如下:

DROP USER 'username'@'hostname'

 

其中,username为用户名,hostname为指定的主机。

文章来源: kanshan.blog.csdn.net,作者:看山,版权归原作者所有,如需转载,请联系作者。

原文链接:kanshan.blog.csdn.net/article/details/43486825

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。