竟现场打开电脑配置起了mysql数据库权限,令经理目瞪口呆 下

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 竟现场打开电脑配置起了mysql数据库权限,令经理目瞪口呆 下

2、用户权限管理

(1)创建用户及授权

        Mysql用户创建可以通过create user/grant命令创建,也可以通过insert语句直接操作MySQL系统权限表来创建。

创建及给用户授权命令:

        创建用户:CREATE USER username@'host' IDENTIFIED BY 'password'

        用户授权:GRANT permission ON database.tables TO username@’host’

        创建用户并授权:GRANT permission ON database.tables TO username@'hostt'  WITH GRANT OPTION;

    MYSQL创建用户及给用户授权的用户名主机部分由两部分组成,分别为用户名和登录主机名,格式为’username’@’hostname’;hostname字段可以使用主机名或者ip地址,同时hostname字段允许使用”%”和”_”两种字符进行匹配。

1.# 创建用户dayi123并授予本地登录所有库所有权限

2.mysql> create user 'dayi123'@'localhost' identified by 'dayi123';

3.mysql> grant all privileges on *.* to 'dayi123'@'localhost' with grant option;

4.# 创建用户用户dayi通过192.168.0.0段ip地址登录的增删该查跟新库web的权限

5.mysql> grant select,insert,update,delete,create,drop on web.* to 'dayi'@'192.168.%.%' identified by 'dayi123';

6.# 给root用户授权可以通过192.168.0.0段地址登录

7.mysql> grant all on *.* to root@'192.168.%.%' identified by 'dayi123';

(2)用户权限查看

        查看已经授权给用户权限信息命令:show grants for ‘username’@’host’

1.# 查看授权给'dayi'@'192.168.%.%'的权限信息

2.mysql> show grants for 'dayi'@'192.168.%.%';

3.+---------------------------------------+

4.| Grants for dayi@192.168.%.%              |                                          

5.+---------------------------------------------------+

6.| GRANT USAGE ON *.* TO 'dayi'@'192.168.%.%'   |                                        

7.| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `web`.* TO 8.'dayi'@'192.168.%.%' |

9.+---------------------------------------------------+

2 rows in set (0.00 sec)

查看创建用户的语句:show create user ‘username’@’host’

1.# 查看给用户’dayi’没有授权的信息

2.mysql> show create user dayi@'192.168.%.%';

3.+------------------------------------------+

4.| CREATE USER for dayi@192.168.%.%            |                                                                                                                      

5.+--------------------------------------------+

6.| CREATE USER 'dayi'@'192.168.%.%' IDENTIFIED WITH 'mysql_native_password' AS '*8FD40AC91E6D5D89D1060096FDEF8A4ECAA05B5C' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |

7.+-----------------------------------------------+

8.1 row in set (0.00 sec)

(3)收回用户权限

        收回用户权限是可以通过语句revoke完成,命令格式为:

        Revoke permission on ‘database’,’tables’ from ‘username’@’host’

  1. # 收回用户dayi远程登录的drop权限;
  2. mysql> revoke drop on web.* from dayi@'192.168.%.%';
  3. Query OK, 0 rows affected (0.00 sec)

(4)设置用户密码

Mysql数据库一般在创建用户时就给用户设置了密码,如果在用户创建完成后想修改密码,可通过相应的命令来完成。

        1)修改其他用户密码(当前用户要有权限),一般在root用户下操作

        登录mysql后的修改命令:

                 Alter user ‘username’@’host’ identified by ‘newpassword’

                 Set password for ‘username’@’host’=password(‘newpassword’)

                 Grant user on permission to ‘user’@’host’ identified by ‘newpassword’

        在系统命令行下修改:

                 mysqladmin –u uername –h host password “newpassword”

  1. # 修改dayi123的密码为dayi1234
  2. mysql> alter user 'dayi123'@'localhost' identified by 'dayi1234';
  3. Query OK, 0 rows affected (0.35 sec)
  4. # 修改dayi远程登录密码为dayi1234
  5. mysql> set password for 'dayi'@'192.168.%.%'=password('dayi1234');
  6. Query OK, 0 rows affected, 1 warning (0.00 sec)

        2)修改当前用户密码

            alter user user() identified by ‘newpassword’

            set password=password(‘newpassword’)

  1. # 修改当前登录的root的密码为dayi1234
  2. mysql> alter user user() identified by 'dayi1234';
  3. Query OK, 0 rows affected (0.00 sec)

(5)mysql用户删除

        删除命令:drop user ‘username’@’host’

  1. # 删除用户dayi远程登录
  2. mysql> drop user 'dayi'@'192.168.%.%';
  3. Query OK, 0 rows affected (0.00 sec)
  4. # 查看删除后的用户
  5. mysql> select user,host from mysql.user;
  6. +---------------+-------------+
  7. | user          | host        |
  8. +---------------+-------------+
  9. | root          | 192.168.%.% |
  10. | dayi          | localhost   |
  11. | dayi123       | localhost   |
  12. | mysql.session | localhost   |
  13. | mysql.sys     | localhost   |
  14. | root          | localhost   |
  15. +---------------+-------------+

(6)用户的锁定与解锁

        在创建用户时或用户创建后可以将用户锁定,用户被锁定后,此用户无法完成登录,锁定与解锁的命令如下:

        在创建用户时锁定用户:

        Create user ‘username’@’host’ identified by ‘password’ account lock;

        用户创建受锁定用户L

        Alter user ‘username’@’host’ account lock

        解锁用户:alter user ‘username’@’host’ account unlock;

  1. # 锁定用户dayi123
  2. mysql> alter user 'dayi123'@'localhost' account lock;
  3. Query OK, 0 rows affected (0.00 sec)
  4. # 用户被锁定后等录时报如下错:
  5. ~]# mysql -udayi123 -p
  6. Enter password:
  7. ERROR 3118 (HY000): Access denied for user 'dayi123'@'localhost'. Account is locked.
  8. # 解锁用户dayi123
  9. mysql> alter user 'dayi123'@'localhost' account unlock;
  10. Query OK, 0 rows affected (0.00 sec)

(7)设置密码过期策略

        Mysql数据库用户同系统用户一样,可以设置密码过期策略,密码的过期天数可以在配置文件里面设置,也可以通过命令设置,通过命令为每个用户设置密码的过期天数则会覆盖系统配置文件中的设置。

        1)配置文件中设置

        选项:default_password_lifetime=”过期天数” :如果设置为0,则密码永不过期。

        2)通过命令设置

        命令:alter user ‘username’@’localhost’ password expire interval number day; 设置过期天数

                    alter user ‘username’@’localhost’ password expire never; 设置密码不过期

                    alter user ‘username’@’localhost’ password expire default; 默认过期策略

                    alter user ‘username’@’localhost’ password expire; 手动强制密码过期

  1. #设置用户dayi123的密码180天后过期
  2. mysql> alter user 'dayi123'@'localhost' password expire interval 180 day;
  3. Query OK, 0 rows affected (0.00 sec)
  4. # 设置用户dayi的密码立即过期
  5. mysql> alter user 'dayi'@'localhost' password expire;
  6. Query OK, 0 rows affected (0.00 sec)
  7. # 设置密码过期后执行命令时需要修改密码才能执行命令
  8. ]# mysql -udayi –p
  9. ……
  10. mysql> show databases;
  11. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

(8)mysql数据库用户资源限制

        通过修改mysql数据库资源限制可以限制用户在某个时间段内连接mysql数据库的时间、执行语句的次数等。

        1)设置参数:

        max_user_connections:全局选项,限制所有用户在同一时间连接mysql数据库实例的数量

        MAX_QUERIES_PER_HOUR:一个用户在一个小时内可以执行查询的次数(基本包含所有语句)

        MAX_UPDATES_PER_HOUR:一个用户在一个小时内可以执行修改的次数(仅包含修改数据库或表的语句)

        MAX_CONNECTIONS_PER_HOUR:一个用户在一个小时内可以连接MySQL的时间

        MAX_USER_CONNECTIONS:一个用户可以在同一时间连接MySQL实例的数量

        2)设置mysql数据库用户资源限制

        设置mysql数据库用户资源限制时可以在创建用户时设置,也可以在用户创建完成后通过命令设置。

1.# 创建用户day,并对用户day的资源进行控制

2.mysql> create user 'day'@'localhost' identified by 'dayi123' with max_queries_per_hour 20 max_updates_per_hour 10 max_connections_per_hour 5 max_user_connections 2;  

3.Query OK, 0 rows affected (0.00 sec)

4.对用户dayi进行资源控制

5.mysql> alter user 'dayi'@'localhost'  with max_queries_per_hour 20 max_updates_per_hour 10 max_connections_per_hour 5 max_user_connections 2;

6.Query OK, 0 rows affected (0.00 sec)

        当需要取消某个选项的,只需将某个选项的值设置为0即可。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
5月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
573 7
|
7月前
|
SQL 安全 关系型数据库
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
在数字化时代,数据库安全至关重要。DBKEEPER提供一站式数据库安全访问与权限管控解决方案,支持多种数据库,具备精细化权限管理、数据脱敏、高危操作拦截、全面审计等功能,助力企业实现智能、安全的数据治理,满足金融、医疗、互联网等行业合规需求。选择DBKEEPER,让数据库安全管理更高效!
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
|
11月前
|
数据库
【YashanDB知识库】数据库用户所拥有的权限查询
【YashanDB知识库】数据库用户所拥有的权限查询
|
SQL NoSQL 关系型数据库
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
2452 1
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
238 4
|
安全 关系型数据库 MySQL
Navicat工具设置MySQL权限的操作指南
通过上述步骤,您可以使用Navicat有效地为MySQL数据库设置和管理用户权限,确保数据库的安全性和高效管理。这个过程简化了数据库权限管理,使其既直观又易于操作。
1430 4
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
813 0
|
Oracle 安全 关系型数据库
|
运维 数据管理 数据库
数据管理DMS产品使用合集之遇到报错:数据库账号没有权限执行,该如何排查
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
322 2

推荐镜像

更多