首页 > 数据库 >mysql授权管理

mysql授权管理

时间:2022-12-04 12:33:50浏览次数:39  
标签:szj 管理 MAX 用户 USER mysql 授权 权限

1 简介

权限系统的作用是授予来自某个主机的某个用户可以查询、更新、删除等数据库操作的权限。

通过create user、grant、revoke语句授权

权限信息保存在名叫mysql的数据库中,并在数据库启动后加载到内存。

认证信息包括用户名@主机名

2 权限的分级

全局:作用于整个mysql实例

数据库级:作用于特定数据库

数据库对象级:作用于表、视图

3 查看默认root权限

mysql> show grants for root@localhost\G;

4 系统权限表

user:存放用户账户信息,以及全局级别权限

db:存放数据库级别权限

tables_priv:表级别权限

columns_priv:列级别权限

procs_priv:存储过程和函数级别权限

5 修改权限后生效时间

执行grant,revoke,setpassword,renameuser命令修改权限之后,MySQL会自动将修改后的权限信息同步加载到系统内存中。

如果直接修改上面的权限表,生效时间各不相同,这里不详述。

6 创建用户并授权

CREATE USER/GRANT命令

例子:创建szj@*用户

 

授权

mysql> CREATE USER 'szj'@'localhost' IDENTIFIED BY 'xxx';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON szj_db.* TO `szj`@`localhost` WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql>

7 回收权限

mysql> REVOKE ALL PRIVILEGES ON szj_db.* FROM 'szj'@'*';

8 删除用户

9 设置用户访问限制

max_user_connections

• 通过设置全局变量max_user_connections可以限制所有用户在同一时间连接MySQL实例的数量,但此参数无法对每个用户区别对待,所以MySQL提供了对每个用户的资源限制管理

MAX_QUERIES_PER_HOUR

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

MAX_UPDATES_PER_HOUR

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

MAX_CONNECTIONS_PER_HOUR

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

MAX_USER_CONNECTIONS

    • MAX_USER_CONNECTIONS:一个用户可以在同一时间连接MySQL实例的数量,注意,当针对某个用户当MAX_USER_CONNECTIONS非0时,则忽略全局系统参数MAX_USER_CONNECTIONS,反之则全局系统参数生效!

    • 从5.0.3版本开始,对用户‘user’@‘%.example.com’的资源限制是指所有 通过example.com域名主机连接user用户的连接,而不是分别指从 host1.example.com和host2.example.com主机过来的连接

10 已存在用户作访问限制

mysql> ALTER USER szj@localhost WITH MAX_USER_CONNECTIONS 5;

11 已存在用户取消访问限制

取消某项资源限制即是把原先的值修改为0

mysql> ALTER USER szj@localhost WITH MAX_USER_CONNECTIONS 0;

12 用户上锁and解锁

 mysql> alter user 'szj'@'localhost' account lock; 

 mysql> alter user 'szj'@'localhost' account unlock; 

13 附录

显示哪些线程正在运行

mysql> show processlist;

mysql> show engines;

 

由此可以看出,在诸多的存储引擎中,只有InnoDB支持事务

查看字段信息

 mysql> desc user; 

 

标签:szj,管理,MAX,用户,USER,mysql,授权,权限
From: https://www.cnblogs.com/zhenjingcool/p/16949643.html

相关文章

  • 小练习-把MySQL数据库中的数据存入redis
    #pymysql、json、redis#1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour#2、查到所有数据[{"id":1,"passwd":"49487dd4f94008a6110275e48a......
  • 存储器管理
    程序执行过程编译编译将源程序翻译成若干的目标代码链接将多个目标模块链接在一起,形成完成的重定向目标程序装入将装载代码模块装入系统分配的内存区地址转......
  • (一)大白话MySQL执行SQL的流程
    ​​(一)大白话MySQL执行SQL的流程​​​​(二)大白话InnoDB存储引擎的架构设计​​​​(三)大白话MySQLBinlog是什么?​​​​(四)MySQL的BufferPool内存结构​​​​(五)MySQL的Buf......
  • Node访问MySQL出错:Cannot set headers after they are sent to the client
    错误内容解决办法发现代码中出现两个res.send()导致该错误即客户端一次请求但服务端有两个或多个响应导致该错误!......
  • 1.mysql的基本操作、配置
    登录mysql-h主机名-P端口号-u用户名-p密码mysql-hlocalhost-P3306-uroot-pQa123456   退出登录exit或quit  查询所有的库mysql>showdat......
  • MySQL
    大负载InnoDB存储Tablespace:leafnodesegmentnon-leafnodesegmentrollbacksegmentSegmentExtent1MPageExtent:Page16K,1M/16K=64个PagePage:......
  • 连续分配存储管理
    内部碎片:分配给某进程的内存区域(某分区中),如果有些部分没有用上。外部碎片:是指内存中的某些空闲分区由于太小而难以利用。一、单一连续分配内存被划分为系统区和......
  • MySQL
    MySQL创建数据库我们可以在登陆MySQL服务后,使用create命令创建数据库,语法如下:CREATEDATABASE数据库名;以下命令简单的演示了创建数据库的过程,数据名为RUNOOB:[roo......
  • 《MySQL必知必会》知识汇总一
    一、使用MYSQL展示所有数据库showdatabases;选择数据库usecrashcourse;展示该数据库中所有的表showtables;还可以展示表列的shema约束showcolumns......
  • Java实现MySQL binlog日志监听
    使用案例引入maven依赖<dependency><groupId>com.github.shyiko</groupId><artifactId>mysql-binlog-connector-java</artifactId><version>0.21.0</version></......