MySql之授权用户权限如何设置

 更新时间:2023年05月17日 14:19:21   作者:xingcsdnboke  
这篇文章主要介绍了MySql之授权用户权限如何设置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

MySql授权用户权限如何设置

首先:去 mysql 库中查看 root 用户的权限

select * from user where user = 'root' and host='localhost';

查看root权限为所有ip都可以访问

mysql> show grants for root;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD

1、授权test用户拥有 mydatabase 数据库的所有权限(某个数据库的所有权限):

mysql>grant all privileges on mydatabase.* to user@localhost identified by '123456';
mysql>flush privileges;//刷新系统权限表

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

2、指定部分权限给一用户,可以这样来写:

mysql>grant select,update on testDB.* to test@localhost identified by '123456';
mysql>flush privileges; //刷新系统权限表

3、授权test用户拥有所有数据库的某些权限:

mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "123456";
//test用户对所有数据库都有select,delete,update,create,drop 权限。
//@"%" 表示对所有非本地主机授权,不包括localhost

MySQL赋予用户权限命令总结

MySQL用户可用权限

一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。

以下是一些可用的权限:

  • ALL: 所有可用的权限 
  • CREATE: 创建库、表和索引 
  • LOCK_TABLES: 锁定表 
  • ALTER: 修改表 
  • DELETE: 删除表 
  • INSERT: 插入表或列 
  • SELECT: 检索表或列的数据 
  • CREATE_VIEW: 创建视图 
  • SHOW_DATABASES: 列出数据库 
  • DROP: 删除库、表和视图 
  • grantindexreferencesreloadshutdownprocess等等

赋予权限基本命令格式

mysql> grant 权限1,权限2 on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; 

当权限1,权限2,…被all privileges或者all代替,表示赋予用户全部权限。

当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。

‘连接口令’不能为空,否则创建失败。

在MySQL安装完成后,为了确保数据库的安全性,通常我们都使用mysqladmin命令给数据管理员root用户添加密码,允许远程登录并赋予所有权限。

例1

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

赋予所有特殊权限给root用户,可以从任何IP地址远程登录,密码为abc123,且拥有grant赋予权限的权限

例2

mysql> grant select,insert,update,delete,create,drop on school.info to test@192.168.100.100 identified by '123';

 给来自192.168.100.100的用户test分配可对数据库school的info表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

例3

mysql> grant all privileges on school.* to test@192.168.100.100 identified by '123';

给来自192.168.100.100的用户test分配可对数据库school所有表进行所有操作的权限,并设定口令为123。

例4

mysql>grant all privileges on *.* to test@localhost identified by '123';

 给本机用户test分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

注:在mysql模式中,当赋予用户权限或者权限设定后,重要的一步使得命令立即生效:

mysql>flush privileges

忘记密码 重置密码

systemctl stop mysqld.service
mysqld --skip-grant-tables 启动数据库不使用授权表
source /etc/profile

mysql 进入数据库

update mysql.user set authentication_string=password ('123456') where user='root';
flush privileges; 刷新数据库
init 6 重启

注:若是想默认直接跳过账户验证,可直接通过在主配置文件中添加:

vim /etc/my.cnf

[mysqld]
skip-grant-tables      //添加跳过验证命令
user=mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
....

重启MySQL服务

systemctl restart mysqld.service

如上,当再次进入MySQL时即可跳过验证,直接进入。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL延迟问题和数据刷盘策略流程分析

    MySQL延迟问题和数据刷盘策略流程分析

    这篇文章主要介绍了MySQL延迟问题和数据刷盘策略流程分析,本文要给大家提到了mysql复制流程,需要的朋友可以参考下
    2020-02-02
  • MYSQL行列转置方式

    MYSQL行列转置方式

    本文介绍了如何使用MySQL和Navicat进行列转行操作,首先,创建了一个名为`grade`的表,并插入多条数据,然后,通过修改查询SQL语句,使用`CASE`和`IF`函数将列转换为行,总结指出,`SUM`可以替换为`MAX`、`MIN`、`AVG`等聚合函数,并且在查询中需要对普通字段进行分组
    2025-01-01
  • MySQL Binlog日志的记录模式写入机制文件操作详解

    MySQL Binlog日志的记录模式写入机制文件操作详解

    这篇文章主要介绍了MySQL Binlog日志的记录模式写入机制文件操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • mysql sql_mode数据验证检查方法

    mysql sql_mode数据验证检查方法

    sql_mode 会影响MySQL支持的sql语法以及执行的数据验证检查,通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性,这篇文章主要介绍了mysql sql_mode数据验证检查,需要的朋友可以参考下
    2023-08-08
  • MySQL通透详解架构设计

    MySQL通透详解架构设计

    这篇文章主要介绍了MySQL架构设计相关基础与原则,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2022-02-02
  • MySQL删除数据1093错误

    MySQL删除数据1093错误

    在进行更新和删除操作的时候,条件语句里面有子查询语句,此时会报1093错误,本文就来介绍一下1093错误的解决,感兴趣的可以了解一下
    2024-02-02
  • MySQL字段自增自减的SQL语句示例介绍

    MySQL字段自增自减的SQL语句示例介绍

    MySQL的自增语句大家应该都很熟悉,本文为大家介绍下MySQL字段自增自减的SQL语句,需要的朋友可以参考下
    2014-02-02
  • Mysql中有关Datetime和Timestamp的使用总结

    Mysql中有关Datetime和Timestamp的使用总结

    mysql数据库常用的时间类型有timestamp和datetime,两者主要区别是占用存储空间长度不一致、可存储的时间也有限制,本文就来详细的介绍一下,感兴趣的可以了解一下
    2021-12-12
  • MySQL关于字符串中数字排序的问题分析

    MySQL关于字符串中数字排序的问题分析

    这篇文章主要介绍了MySQL关于字符串中数字排序的问题,结合实例形式分析了mysql按照数值排序的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • mysql表名忽略大小写配置方法详解

    mysql表名忽略大小写配置方法详解

    下面小编就为大家带来一篇mysql表名忽略大小写配置方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论