首先说一下mysql数据库管理权限的数据库是mysql库 我们看一下mysql库中都有哪些表

mysql> show tables from mysql;

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

| Tables_in_mysql           |

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

| columns_priv              |

| db                        |

| engine_cost               |

| event                     |

| func                      |

| general_log               |

| gtid_executed             |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| innodb_index_stats        |

| innodb_table_stats        |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| server_cost               |

| servers                   |

| slave_master_info         |

| slave_relay_log_info      |

| slave_worker_info         |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

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

mysql数据库中几个重要的表

columns_priv表 记录授权用户对表中字段的访问权限

db 表记录用户服务器上库的访问权限

tables_priv 表 记录授权用户对库中表的访问权限

user 记录有哪些授权用户

user 表中的字段

user 是用户名 root是mysql的管理员用户

host 是允许该用户从哪个客户端访问mysql服务器  可以是ip地址  主机名  网段(主机位用%代替) 除本机外的所有网络地址使用%

Select_priv。确定用户是否可以通过SELECT命令选择数据。

Insert_priv。确定用户是否可以通过INSERT命令插入数据。

Update_priv。确定用户是否可以通过UPDATE命令修改现有数据。

Delete_priv。确定用户是否可以通过DELETE命令删除现有数据。

Create_priv。确定用户是否可以创建新的数据库和表。

Drop_priv。确定用户是否可以删除现有数据库和表。

Reload_priv。确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表。

Shutdown_priv。确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何用户时,都应当非常谨慎。

Process_priv。确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程。

File_priv。确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令。

Grant_priv。确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户。

References_priv。目前只是某些未来功能的占位符;现在没有作用。

Index_priv。确定用户是否可以创建和删除表索引。

Alter_priv。确定用户是否可以重命名和修改表结构。

Show_db_priv。确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。

Super_priv。确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET

GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。

Create_tmp_table_priv。确定用户是否可以创建临时表。

Lock_tables_priv。确定用户是否可以使用LOCK TABLES命令阻止对表的访问/修改。

Execute_priv。确定用户是否可以执行存储过程。此权限只在MySQL 5.0及更高版本中有意义。

Repl_slave_priv。确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位于主系统中,有利于主机和客户机之间的通信。

Repl_client_priv。确定用户是否可以确定复制从服务器和主服务器的位置。

Create_view_priv。确定用户是否可以创建视图。此权限只在MySQL 5.0及更高版本中有意义。关于视图的更多信息,参见第34章。

Show_view_priv。确定用户是否可以查看视图或了解视图如何执行。此权限只在MySQL 5.0及更高版本中有意义。关于视图的更多信息,参见第34章。

Create_routine_priv。确定用户是否可以更改或放弃存储过程和函数。此权限是在MySQL 5.0中引入的。

Alter_routine_priv。确定用户是否可以修改或删除存储函数及函数。此权限是在MySQL 5.0中引入的。

Create_user_priv。确定用户是否可以执行CREATE USER命令,这个命令用于创建新的MySQL账户。

Event_priv。确定用户能否创建、修改和删除事件。这个权限是MySQL 5.1.6新增的。

Trigger_priv。确定用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的。

一般我们在程序中使用的权限都是设置的刚刚够用就行,不要设置过高的权限从而给数据库带来一些安全隐患;

mysql数据库默认root管理员用户只能在本机登陆为了方便管理我们将我们添加一个root用户在管理机的地址,有所有权限,才能远程管理mysql数据库

在本机用root用户登陆mysql

mysql -hlocalhost -uroot -p管理员密码

如果是新安装的mysql数据库服务器(以5.7版本为例) 默认的root密码是安装时随即生成的可以在日志文件中找到 root@localhost:后面是随机密码大部分随机密码有特殊符号所以登陆的时候密码要用单引号引起来

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

2018-02-23T00:42:30.776575Z 1 [Note] A temporary password is generated for root@localhost: aRaOssg_*774

登陆进入mysql后

mysql> grant all on *.* to root@'远程管理的客户端ip' identified by '远程管理的密码' with grant option;   #with grant option 是给新加的root用户授权权限

这样就可以在你指定的管理机上登陆mysql服务器了

用户授权

grant 权限列表 on 库名.表名 to "用户名"@"客户端地址" identified by “密码” with grant option; 新授权的权限在指定的客户端上也可以授权  with grant option

客户端地址可以是指定ip

指定网段主机位用%表示  192.168.4.%

所以ip用%

权限 all 所有权限

库和表可以用*来表示所有的意思

查看数据库服务器上已经有的授权的用户及权限

select user,host from mysql.user;

show  garts for "用户名"@“客户端地址”;

显示当前登陆的用户

select user();

显示当前主机名

select @@hostname;

查看登陆用户的访问权限

show grants;

权限撤销

revoke 权限列表 on 库名.表名 from "用户名"@"客户端地址"

删除授权用户

drop user "用户名"@"客户端地址"; 删除授权用户后该用户的权限也会全部被删除

修改授权用户的登陆密码

set password  for "用户名"@"客户端地址"=password("新密码")

授权用户重置自己的用户密码

set password=password("新密码");

如果说你要给某一个库据具有所有权限包含可以授权的权限

你需要添加该用户在mysql数据库中的所有表具有插入权限 (如果没有mysql的插入权限,授予该用户的with grant option 也无法给其他用户授权) 并且该用户能给其他用户授权的权限不能大于本身具有的权限

恢复数据库管理员本机管理密码(忘记的root用户的管理密码的请况下在mysql服务器操作系统上)

1.修改配置文件 /etc/my.cnf 文件

在[mysqld] 下面

添加跳过授权表的参数(如果有验证策略的参数设置需要先注释已经添加过的验证策略参数)skip-grant-tables

2.重启mysql 服务

3.无密码进入mysql

4.修改mysql root用户密码

update mysql.user set authentication_string=password("新密码") where user=“root” host=“localhost”;

5.退出,修改回原来的mysql配置

6.重启mysqld服务

下面提供一些示例

1、修改数据库管理员从本机登录的密码为123456

数据库管理员使用新密码从本机连接数据库服务器

mysqladmin -uroot -p654321 password123456;

2、查看当前登陆数据库服务器的用户是谁?

mysql> select user();

3、查看当前登陆数据库服务器用户的权限?

mysql> show grants for root@localhost;

4、查看当前数据库服务器有哪些授权用户?

mysql> select user,host from mysql.user;

5、授权管理员用户可以在网络中的192.168.4.254主机登录,对所有库和表有完全权限且有授权的权限;登陆密码abc123

mysql> grant all on *.* to root@'192.168.4.254' identified by 'abc123' with grant option;

6、不允许数据库管理员在数据库服务器本机登录。(在做此操作之前一定要添加一个可以远程管理的用户,否则你就进不了mysql服务器了)

drop user root@"localhost";

7、授权userweb用户可以从网络中的任意主机访问数据库服务器,对db3库下的user表有查看、更新name字段和age字段的权限 ,  登录密码userweb888。

grant select,update(name,age) on db3.user to userweb@'%' identified by 'userweb888'

8、验证以上授权是否成功

#mysql -h192.168.4.51 -uuserweb -puserweb888

mysql> select * from db3.user;

mysql> update  db3.user set name="xx",age=20 where name="ss";

Query OK, 2 rows affected (0.00 sec)

Rows matched: 2  Changed: 2  Warnings: 0

mysql> delete from db3.user where name="xx";

ERROR 1142 (42000): DELETE command denied to user 'userweb'@'192.168.4.254' for table 'user'

9、userweb修改自己的登陆密码为123456,并验证能否使用新密码登陆

mysql> set password=password("123456");

Query OK, 0 rows affected, 1 warning (0.00 sec)

#mysql -h192.168.4.51 -uuserweb -p123456

10、 数据库管理员修改授权用户userweb的登录密码为654321,让授权用户userweb 使用新密码登陆数据库服务器。

set password for userweb@"%"=password("654321");

11、撤销授权用户userweb 的所有授权并 使其不再能使用此用户连接数据库服务器。

mysql> drop user user@"%";

12、授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,且有授权权限,登录密码为 123456

mysql> grant all on bbsdb.* to webadmin@'%' identified by '123456' with grant option;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant insert on mysql.* to webadmin@"%" ;

Query OK, 0 rows affected (0.00 sec)

13、在客户端使用授权用户webadmin登录,把自己的权限授权给userone用户 , 登录密码是  123456

# mysql -h192.168.4.51 -uwebadmin -p123456

mysql> grant all on bbsdb.* to userone@"%" identified by "123456" with grant option;

15、撤销webadmin用户的授权权限。mysql> revoke grant option on bbsdb.* from webadmin@"%";

Query OK, 0 rows affected (0.00 sec)

mysql 字段授权_mysql授权管理相关推荐

  1. mysql navicat授权_Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端...

    Navicat Premium连接MySQL 1251错误 MySQL Installer 8.0.17 ​ 出现上述错误的原因是版本MySQL 8.0.17即8.0开始的MySQL版本,因为采用新的 ...

  2. mysql 用户管理系统_mysql 用户管理

    MySQL账户管理 在我们之前登录MySQL的时候我们都是直接使用的root用户,root用户属于数据库系统中的超级管理员,有权限对mysql进行任何想要做的操作. 如果在生产环境下操作数据库时也是全 ...

  3. mysql权限配置文件_MySQL权限管理、配置文件(三)

    一.MySQL权限管理 GRANT 权限 ON 授权范围 TO '用户名'@'允许的ip(所有%)' IDENTIFIED BY '用户密码'; 权限:参加下表,一般常用的是CREATE.DELETE ...

  4. mysql dba命令_MySQL DBA 管理常用命令

    一:在Linux下管理MySQL数据库的时候总有一些很紧急的情况,发现数据库突然变得压力很大了,那么作为一个DBA,也许需要一些常用的手段或者说命令去分析问题出现在哪里,然后解决: 数据库突然产生压力 ...

  5. mysql调试事件_mysql日志管理分析调试实例_mysql

    以下的文章主要介绍的是mysql 操作日志查看的实际操作步骤以及对其实际操作步骤的具体描述,假如你在实际操作中遇到相似的情况,但是你却不知道对其如何正确的解决,那么以下的文章对你而言一定是良师益友. ...

  6. mysql 服务账号_MySql 账号管理

    1.创建账号,有两种方式,一种为使用GRANT,一种直接操作权限表,推荐使用第一种,操作简单而且不容易出错.在MySql命令行中查看GRANT帮助即可看到GRANT的用法: mysql> ? G ...

  7. mysql字段作用_mysql用户表host字段作用

    mysql用户表中host字段介绍,如果host设置不正确,可能导致无法连接mysql数据库. user_name@host_name,其中host_name是主机IP地址或主机名. 1)为了能够在本 ...

  8. mysql字段优化_MySQL优化(1):字段的设计

    Web项目中,当Java或者Go等语言速度提升到瓶颈的时候,我们需要关心MySQL的优化 可以优化的方面有很多:设计表.负载均衡.读写分离.SQL语句优化等 (1)IP地址设计 例如我们需要存储IP地 ...

  9. mysql 字段字节_MySql字段类型及字节

    字段类型: TINYINT-----------------一个很小的整数.有符号的范围是-128到127,无符号的范围是0到255. SMALLINT--------------一个小整数.有符号的 ...

最新文章

  1. Kafka入门教程与详解
  2. linux valgrind Memcheck--内存检查工具
  3. wxWidgets:wxChoicebook类用法
  4. uva 10305拓扑排序
  5. 技术管理—管理书籍推荐
  6. LeetCode之Sum of Two Integers
  7. 你会选择深圳还是佛山?
  8. em算法 实例 正态分布_Petuum提出序列生成学习算法通用框架
  9. Vue执行动画(transition)
  10. 回文后缀(suffix)
  11. es文件管理复制到fpt服务器,达人教你玩应用:ES文件浏览器之文件互传
  12. RAID磁盘阵列相关技术详解
  13. caffe源码学习:Blobs
  14. 通过Htpp访问svn内容
  15. [译]无迹卡尔曼滤波教程
  16. 东方博宜OJ 1056 - 【入门】所有不超过1000的数中含有数字3的自然数
  17. php 九宫格验证码,PHP九宫格抽奖源码示例
  18. Rust学习记录 -> 线程之间的通道通信
  19. 【特征选择】过滤式特征选择法
  20. xpath-通过列表推导式和string(.)的方式获取标签下包含子标签的所有文本

热门文章

  1. linux进程间通讯-有名管道
  2. numpy 读写 npy npz 文件
  3. 【Java】Java连接Mysql数据库的demo示例
  4. 【Dual-Path-RNN-Pytorch源码分析】loss函数:SI-SNR
  5. LeetCode 17. Letter Combinations of a Phone Number--笔试题--C++,Python解法
  6. Python:生成两个日期间的随机日期
  7. mysql 负载 查看_Mysql-命令查询当前正在负载运行的SQL语句
  8. 2020-11-02C 标准库 - <ctype.h>
  9. 小鱼天气android,小鱼天气(cn.microsoft.cig.uair) - 1.3.14 - 应用 - 酷安
  10. Jvm 系列(六):Java 服务 GC 参数调优案例