【数据库】 mysql用户授权详解

这篇具有很好参考价值的文章主要介绍了【数据库】 mysql用户授权详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

MySQL用户授权

一,密码策略

1,查看临时密码

2,查看数据库当前密码策略:

二, 用户授权和撤销授权

1、创建用户

2,删除用户

3,授权和回收权限


MySQL用户授权

一,密码策略

mysql刚安装时,临时密码会存储在 /var/log/mysqld.log

1,查看临时密码

方法一:直接给出密码

[root@localhost ~]# awk '/temporary password/ {print $NF}' /var/log/mysqld.log

*2D):irrJ_!_

mysql授权,数据库,数据库,mysql,运维

 

方法二:查到的语句的最后为密码

[root@localhost ~]# grep 'password' /var/log/mysqld.log

2023-02-07T13:07:17.842453Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: *2D):irrJ_!_

mysql授权,数据库,数据库,mysql,运维

 

 

 

2,查看数据库当前密码策略:

mysql8.0.30 [(none)]>show VARIABLES like"%password%";

mysql授权,数据库,数据库,mysql,运维

二, 用户授权和撤销授权

MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权。需要先创建用户,再进行授权操作。

mysql8.0.30 [(none)]>grant all privileges on *.* to 'xiaoming'@'%';

ERROR 1410 (42000): You are not allowed to create a user with GRANT

 

mysql授权,数据库,数据库,mysql,运维

1、创建用户

创建新用户,语法:create user 'username'@'host' identified by 'password';

说明:username为自定义的用户名,host为客户端的域名或者IP,如果host为'%'时表示为任意IP,password为密码。

(1)创建一个用户名为xiaoming,客户端的ip为任意,密码为Guest123!的新用户

mysql8.0.30 [(none)]>create user xiaoming@'%' identified by 'Guest123!';

Query OK, 0 rows affected (0.01 sec)

mysql授权,数据库,数据库,mysql,运维

(2)查看刚创建的的用户信息

mysql8.0.30 [(none)]>select user,host from mysql.user;

+------------------+-----------+

| user             | host      |

+------------------+-----------+

| root             | %         |

| xiaoming         | %         |

| mysql.infoschema | localhost |

| mysql.session    | localhost |

| mysql.sys        | localhost |

+------------------+-----------+

5 rows in set (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

(3)使用xiaoming用户登录一下数据库:

[root@localhost ~]# mysql -uxiaoming -p'Guest123!';

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 8.0.32 MySQL Community Server - GPL



Copyright (c) 2000, 2023, Oracle and/or its affiliates.



Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.



Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql授权,数据库,数据库,mysql,运维

(4)使用xiaoming用户查看所有的数据库:

mysql8.0.30 [(none)]>show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| performance_schema |

+--------------------+

2 rows in set (0.01 sec)

mysql授权,数据库,数据库,mysql,运维

 

(5)也可以在windows端登录xiaoming用户:

mysql授权,数据库,数据库,mysql,运维

 

 

 

 

 

2,删除用户

(1)删除用户名为xiaoming,客户端的ip为任意,密码为Guest123!的用户

mysql8.0.30 [(none)]>drop user xiaoming@'%';

Query OK, 0 rows affected (0.01 sec)

mysql授权,数据库,数据库,mysql,运维

(2)删除后的user表中已经没了xiaoming的信息

mysql8.0.30 [(none)]>select user,host from mysql.user;

+------------------+-----------+

| user             | host      |

+------------------+-----------+

| root             | %         |

| mysql.infoschema | localhost |

| mysql.session    | localhost |

| mysql.sys        | localhost |

+------------------+-----------+

4 rows in set (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

  

注意,如果删除用户时显示如下提示:

mysql8.0[mysql]>drop user xiaoming;

ERROR 1227(42000): Access denied; you need (atleast oneof) the SYSTEM_USER privilege(s) forthis operation

需要执行该语句:

【mysql8.0 [(none)]>grant  system_user  on *.*  to  root@'%';】

3,授权和回收权限

 

授予权限的原则:

(1)只授予能满足需要的最小权限 ,防止用户干坏事。比如用户只是需要查

          询,那就只给 select 权限就可以了,不要给用户赋予update 、 insert 或

           者 delete 权限

(2)创建用户的时候限制用户的登录主机 ,一般是限制成指定 IP 或者内网

           IP 段。

(3)为每个用户设置满足密码复杂度的密码 。

(4)定期清理不需要的用户 ,回收权限或者删除用户。

 

授权语法:grant 权限列表 on 库名.表名 to 用户名@'主机' [with GRANT option];

没有with GRANT option,被授权者无法授权于下一个人用户

mysql用户常用权限列表

说明

all 或者all privileges

授予用户所有权限

create

授予用户创建新数据库和表的权限

drop

授予用户删除数据库和表的权限

delete

授予用户删除表中的行的权限

alter

授予用户修改表结构的权限

insert

授予用户在表中插入行(add)的权限

select

授予用户运行select命令以从表中读取数据的权限

update

授予用户更新表中的数据的权限

查看授予用户的权限的四种方法:

(1) 查看root用户的权限(方法一)

mysql8.0.30 [(none)]>show grants;

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Grants for root@%                                                                                                                                                                                                                                                                                                                                                                                |

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION |

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

(2)查看xiaoming用户的权限(方法二)

mysql8.0.30 [(none)]>show grants for xiaoming@'%';

+--------------------------------------+

| Grants for xiaoming@%                |

+--------------------------------------+

| GRANT USAGE ON *.* TO `xiaoming`@`%` |

+--------------------------------------+

1 row in set (0.00 sec)


mysql授权,数据库,数据库,mysql,运维

(3)mysql8.0[mysql]>select* from mysql.user;(方法三)

(4)方法四:

mysql授权,数据库,数据库,mysql,运维

授权操作

不具有授予下一个人权限的权利的授权

(1)此时,xiaoming用户可以访问以下两个数据库,须授予其他数据库的访问权限,才能对其

         它数据库进行操作

mysql8.0.30 [(none)]>show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| performance_schema |

+--------------------+

2 rows in set (0.01 sec)

  mysql授权,数据库,数据库,mysql,运维

 

 

(2)给xiaoming用户授予所有权限

*.*中第一个*表示所有数据库,第二个*表示所有数据表

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaoming@'%';

Query OK, 0 rows affected (0.01 sec)

mysql授权,数据库,数据库,mysql,运维

(3)此时xiaoming用户拥有和root用户一样的权限,可以访问其它数据库的权限

mysql8.0.30 [(none)]>show databases;

+--------------------+

| Database           |

+--------------------+

| chap03             |

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.00 sec)


mysql授权,数据库,数据库,mysql,运维

(4)此时的xiaoming用户没有赋予下一个人权限的权利

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';

ERROR 1045 (28000): Access denied for user 'xiaoming'@'%' (using password: YES)

mysql8.0.30 [(none)]>

mysql授权,数据库,数据库,mysql,运维

具有授予下一个人权限的权利的授权

(1)重新授予xiaoming用户授予其他用户权限的权利

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaoming@'%' with GRANT option;

Query OK, 0 rows affected (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

(2)使用xiaoming用户为xiaohei 用户授权

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';

Query OK, 0 rows affected (0.01 sec)

mysql授权,数据库,数据库,mysql,运维

(3)此时xiaohei用户拥有访问所有数据库的权利

mysql8.0.30 [(none)]>select user();       (查看当前的用户)

+-------------------+

| user()            |

+-------------------+

| xiaohei@localhost |

+-------------------+

1 row in set (0.00 sec)



mysql8.0.30 [(none)]>show databases;     (此用户可以访问以下数据库的权利)

+--------------------+

| Database           |

+--------------------+

| chap03             |

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

收回权限

收回权限(不包含赋权权限)

REVOKE ALL PRIVILEGES ON *.* FROM username;

收回赋权权限

REVOKE GRANT OPTION ON *.* FROM username;

收回赋权权限

(1)收回xiaoming用户授予其他用户权限的权利

mysql8.0.30 [(none)]>revoke grant option on *.* from xiaoming;

Query OK, 0 rows affected (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

(2)此时,xiaoming用户不在拥有授予其他用户的权限

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';

ERROR 1045 (28000): Access denied for user 'xiaoming'@'%' (using password: YES)

mysql8.0.30 [(none)]>

mysql授权,数据库,数据库,mysql,运维

收回权限(不包含赋权权限)

(1)收回xiaoming用户的所有权限

mysql8.0.30 [(none)]>revoke all privileges on *.* from xiaoming@'%';

Query OK, 0 rows affected (0.00 sec)

mysql授权,数据库,数据库,mysql,运维

(2)此时xiaoming用户不在拥有访问其它数据库的权限

mysql8.0.30 [(none)]>show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| performance_schema |

+--------------------+

2 rows in set (0.00 sec)

mysql授权,数据库,数据库,mysql,运维文章来源地址https://www.toymoban.com/news/detail-515872.html

到了这里,关于【数据库】 mysql用户授权详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql数据库中的用户管理与授权

    ddl: create drop alter dml:对数据进行管理update insert into delete truncate dql:查询语句 select dcl:权限控制语句grant revoke create user \\\'用户名\\\'@\\\'主机\\\' identified by \\\'密码\\\' 加密 SELECT PASSWORD(\\\'密码\\\'); #先获取加密的密码 CREATE USER \\\'lisi\\\'@\\\'localhost\\\' IDENTIFIED BY PASSWORD \\\'加密的密码\\\';  select user(); grant all

    2024年02月07日
    浏览(52)
  • 【数据库二】数据库用户管理与授权

    CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同,在存储或检索过程中不进行大小写转换。 下表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别: 字节大小 char无论是否有值,都

    2024年02月09日
    浏览(50)
  • Oracle数据库中,授权某用户可以查询其他用户的表

    在Oracle数据库中,授权一个用户可以查看其他所有用户的表,需要执行以下步骤: 使用数据库管理员账号连接到Oracle数据库。 通过 GRANT 命令给用户授予必要的权限。例如,如果要授权用户 user1 可以查看所有其他用户的表,可以执行以下命令: 这条命令将授予 user1  SELECT

    2024年02月08日
    浏览(70)
  • 微信小程序实现登录授权,并将获取到的用户授权信息存储到数据库中

    官方开发文档 注意:在实现授权登录时,不要使用测试号进行 wx.getUserProfile使用文档 config文件代码如下 路由模块 主要代码(如果不想多个文件,可以将wxuserHandle.wxuser这个位置内容替换为exports.wxuser的内容) 注意: 在返回token的字符串拼接时,Bearer 后面必须有一个空格 数据

    2024年02月10日
    浏览(59)
  • oracle数据库给用户授权DBA权限&Oracle查看哪些用户具有DBA权限

    步骤一:以sysdba身份登录到Oracle数据库 在授予DBA权限之前,我们首先要以sysdba身份登录到Oracle数据库。使用以下命令登录: 步骤二:创建用户(如有用户跳过) 要授予DBA权限,首先需要创建一个新用户。使用以下命令创建一个新用户: 步骤三:授予DBA权限 一旦用户创建成

    2024年02月09日
    浏览(54)
  • MySQL数据库 --- 运维篇

    错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld

    2024年02月08日
    浏览(103)
  • 【运维知识进阶篇】Zabbix5.0稳定版详解11(在Grafana中使用Zabbix插件:安装Grafana+安装Zabbix插件+添加数据源+Grafana直连MySQL数据库取值)

    本篇文章给大家介绍在Grafana中使用Zabbix插件,Zabbix扩展的很多,该讲的基本上全讲了,这篇文章结束后,就考虑换个内容了。 Grafana是用于可视化大型测量数据的开源程序,类似于Kibana,我们在里面使用zabbix插件,可以实现对其他主机的监控,监控数据能够更好的显示出来。

    2024年01月15日
    浏览(57)
  • 数据库安全-Redis未授权&Hadoop&Mysql&未授权访问&RCE 漏洞复现

    未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露,包括端口的未授权常见页面的未授权 /admin.php /menu.php 常见的未授权访问漏洞及默认端口: 默认端口统

    2024年02月03日
    浏览(48)
  • [运维|数据库] PostgreSQL数据库对MySQL的 READS SQL DATA 修饰符处理

    在 PostgreSQL 中,访问权限通常是通过数据库角色和表级别的权限进行管理,而不需要类似 MySQL 中的 READS SQL DATA 修饰符。 要在 PostgreSQL 中管理数据库对象的访问权限,您可以使用以下 SQL 命令: GRANT :授予用户或角色对表、视图等对象的特定权限。 REVOKE :撤销用户或角色对

    2024年02月07日
    浏览(74)
  • 运维笔记之centos7安装mysql数据库

    如果使用的4.1以上版本的rpm的话,除了import mysql的公钥到个人用户的配置中,还需要import mysql的公钥到RPM的配置中

    2024年02月04日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包