ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql权限问题

2022-06-24 18:01:17  阅读:170  来源: 互联网

标签:用户 问题 host user mysql 权限 select


mysql5.7 & 8 用户权限管理 

 

前言

注意问题

grant all privileges on shop.* to 'hosp'@'%'
flush privileges;

查询账号权限类型%和localhost是不同的
select host, user from mysql.user;
show databases;

mysql 读写性能相对中规中矩,适合大多数情况下使用。本博文记录一下 mysql 关于用户相关的操作

准备工作

通过 mysql 的默认账号 root 来登录 mysql, mysql默认root账号没有密码

创建数据库:

CREATE DATABASE 【数据库名】 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql -u root -h 127.0.01 -p -P3306

查询当前创建用户

方式一

mysql> select host, user, password from mysql.user;              # 5.7版本之前的
mysql> select host, user, authentication_string from mysql.user;  # 5.7版本之后的,包括5.7

方式二(推介)

mysql> select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;

查询用户的权限

all表示所有权限
select表示只查权限
update表示只改权限
delete表示只删权限等。

查询具体某个用户的权限(方法一)(推荐)

mysql> show grants for "user"@"host";  # "user"@"host" 填写对应用户信息

查询具体某个用户的权限(方法二)

查询root用户的权限

mysql> select * from mysql.user where user='root'\G;

创建新用户

新创建的用户,默认情况下是没有任何权限的

mysql> create user "用户名"@"IP地址" identified by "密码";

案例

# 创建用户【shuiche】密码为: 123456,host值默认为%。
mysql> create user "shuiche" identified by "123456";  

# 创建用户【shuiche】密码为: 123456,手动指定host值为%。
mysql> create user "shuiche"@"%" identified by "123456";  

mysql.user表中Host为%的含义. Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。. 这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。. 而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。. 如果Host=%,表示所有IP都有连接权限。.

给用户授权

常用的权限类型有以下几种:

all privileges:所有权限。
select:读取权限。
create:创建权限。
delete:删除权限。
update:更新权限。
drop:删除数据库、数据表权限。

允许访问所有数据库下的所有表

mysql> grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' ;

允许访问指定数据库(test)下的所有表

mysql> grant all privileges on test.* to '用户名'@'指定ip' ;

允许访问指定数据库下的指定表(test.test)

mysql> grant all privileges on test.test to '用户名'@'指定ip' ;

删除用户权限(使用root用户操作)

mysql> revoke select on test.* from "shuiche"@"%";

mysql> revoke all on tornado.* from "shuiche"@"%";

删除用户

# 方法一
mysql> drop user "haidon"@"%";  

# 方法二
mysql> delete from mysql.user where user="haidon";

刷新权限(使权限立即生效) (重要)

mysql> flush privileges;

标签:用户,问题,host,user,mysql,权限,select
来源: https://www.cnblogs.com/zcxxcvbn/p/16409807.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有