Mysql数据库指定某数据库或某表赋予增删改查操作权限各类划分权限的方法总结实战

本文主要是介绍Mysql数据库指定某数据库或某表赋予增删改查操作权限各类划分权限的方法总结实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、mysql创建用户只赋予指定数据库的增删改查操作权限

在日常生产运维工作中,我们经常需要给其他厂商或者合作伙伴提供数据库的账号,并且需要指定某个用户只能查询指定的数据库,并且赋予增删改查的指定权限。

(1)创建某个用户,赋予只能操作(增、删、改、查)指定某个数据库,并且其他数据库看不到,只能看到指定的数据库

CREATE USER '用户名'@'%' IDENTIFIED BY '登录数据库的密码';
GRANT SELECT, INSERT, UPDATE, DELETE ON `数据库名称`.* TO '用户名'@'%';

(2)创建某个用户,赋予只能查询指定某个数据库的所有表,其他数据库完全看不到!

CREATE USER '用户名'@'%' IDENTIFIED BY '登录数据库的密码';
GRANT SELECT  ON `数据库名称`.* TO '用户名'@'%';

(3)创建某个用户,只能查询指定数据库的某个表,该库其他表都看不到!其他数据库完全看不到!

CREATE USER '用户名'@'%' IDENTIFIED BY '登录数据库的密码';
GRANT SELECT ON `数据库名称`.`表名` TO '用户名'@'%';

(4)创建某个用户,只能操作(增、删、改、查)指定数据库的某个表,该库其他表都看不到!其他表也操作不了!

CREATE USER '用户名'@'%' IDENTIFIED BY '登录数据库的密码';
GRANT SELECT, INSERT, UPDATE, DELETE ON `数据库名称`.`表名` TO '用户名'@'%';

(5)创建某个用户,只能查询指定数据库的某个表,该库其他表都看不到!并且指定数据库用户登录的IP地址!其他IP无法登录!

CREATE USER '用户名'@'IP地址' IDENTIFIED BY '登录数据库的密码';
GRANT SELECT ON `数据库名称`.`表名` TO '用户名'@'IP地址';

总结一下运维常用的几种赋予权限的方法!

二、将A服务器的MYSQL的所有用户权限复制迁移到B服务器MYSQL的方法

在日常生产运维工作中,我们经常需要迁移服务器,如果源服务器上的用户建立的非常多,并且还在生产上用着,整个迁移过程就很繁琐,如果漏了,会导致生产事故,笔者介绍一种MYSQL服务器用户权限的迁移方法,方便简单,节省工作量。

MYSQL导出所有用户权限shell脚本实例觉得有效

实际生产生活中,我经常要迁移MYSQL服务器,需要导出数据库的所有用户名密码以及权限。
给大家一个确定可行的shell脚本实例

cd /home/
touch exp_grant.sh
chmod 777 exp_grant.sh
vim exp_grant.sh
#!/bin/bash#Function export user privilegespwd=123456  #root的密码expgrants(){mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" | \mysql -u'root' -p${pwd} $@ | \sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'}expgrants > ./grants.sql
sh exp_grant.sh #执行命令

在这里插入图片描述


-- Grants for nasen@% 
GRANT USAGE ON *.* TO `nasen`@`%`;-- 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;-- Grants for mysql.infoschema@localhost 
GRANT SELECT ON *.* TO `mysql.infoschema`@`localhost`;
GRANT AUDIT_ABORT_EXEMPT,SYSTEM_USER ON *.* TO `mysql.infoschema`@`localhost`;-- Grants for mysql.session@localhost 
GRANT SHUTDOWN, SUPER ON *.* TO `mysql.session`@`localhost`;
GRANT AUDIT_ABORT_EXEMPT,BACKUP_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,SESSION_VARIABLES_ADMIN,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN ON *.* TO `mysql.session`@`localhost`;
GRANT SELECT ON `performance_schema`.* TO `mysql.session`@`localhost`;
GRANT SELECT ON `mysql`.`user` TO `mysql.session`@`localhost`;-- Grants for mysql.sys@localhost 
GRANT USAGE ON *.* TO `mysql.sys`@`localhost`;
GRANT AUDIT_ABORT_EXEMPT,SYSTEM_USER ON *.* TO `mysql.sys`@`localhost`;
GRANT TRIGGER ON `sys`.* TO `mysql.sys`@`localhost`;
GRANT SELECT ON `sys`.`sys_config` TO `mysql.sys`@`localhost`;

去另个服务器执行即可, 当然各个用户的密码仍然需要重新定义!!!!!!!

这篇关于Mysql数据库指定某数据库或某表赋予增删改查操作权限各类划分权限的方法总结实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/274881

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读