运行查看mysql用户权限_Mysql用户与权限管理操作

news/2024/7/24 12:49:51 标签: 运行查看mysql用户权限

一、基本的用户管理

新安装的mysql默认只有root用户,如果所有应用都使用root用户,将涉及到许多的权限与安全问题,所以需要创建不同的用户并设置密码来执行不同的操作。

mysql中的用户与密码存在mysql库的user表里。

登录mysql使用如下命令查看用户及密码

mysql>select User,Password from mysql.user;

下面演示创建、删除用户与密码设置

1.创建用户mysql> create user mytest1;

Query OK, 0 rows affected (0.01 sec)

2.设置密码

mysql> set password for mytest1 = password('mi123123');

Query OK, 0 rows affected (0.00 sec)

说明:1.使用“for  username”为指定用户设置密码,不然就是为当前用户设置密码。

2.使用password('密码')方式为要设置的密码进行加密,不然就会明文保存,不安全。

我们还可以在创建用户的同时设置密码

mysql> create user mytest2 identified by 'my123123';

Query OK, 0 rows affected (0.00 sec)

3.查看新建的用户以及设置的密码

mysql> select User,Password from user;

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

| User | Password |

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

| root | |

| root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

| mytest1 | *BB9971EEFFFEF5DB7694D41750FC84489F86A753 |

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

4.如果需要更改用户的名称,可以使用rename user改变用户名称

mysql> rename user mytest1 to mytest3;

Query OK, 0 rows affected (0.00 sec)

5.不再需要的用户可以进行删除

mysql> drop user mytest2;

Query OK, 0 rows affected (0.00 sec)

二、基本的权限管理

以上的命令是用户的创建与设置密码等,虽然创建的用户,但是还是不能登录,必须授予权限。

演示登录

# mysql -u mytest3 -p'my123123'

ERROR 1045 (28000): Access denied for user 'mytest3'@'localhost' (using password: YES)

权限包括2个部分:

1)是否具有连接到mysql的权限;

2)是否具有对所执行动作、操作对象的权限;

对操作对象的权限分为:全局层级、数据库层级、表层级、列层级等

使用grant进行授权,使用revoke收回授权

grant 权限  on  权限层级  to   用户名@主机   identified by '密码';

1)权限可以单独指定一些权限,如查询、更新、删除等,或者所有权限"all  privileges";

2)权限层级可以设置为全局(*.*)、数据库级(mydbname.*)、表层级(mydbname.tablename)等;

3)用户名可以是之前建好的,如果不存在会自动创建新用户;

4)主机可以是本机('localhost'),可以是一个网段('192.168.1.%'),或者任意主机('%');

5)identified by  设置用户访问密码,是可选的,如果没有,将不需要密码访问。

1.授权mydbuser用户在本机访问mysql时,对mydbtest库的所有表具有任意权限mysql> grant all on mydbtest.* to mydbuser@'localhost' identified by 'my123';

Query OK, 0 rows affected (0.00 sec)

使用新用户访问

# mysql -u mydbuser -p'my123'

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

2.只为mydbuser2在mydbtest数据库中授予select、update、drop权限

mysql> grant select,update,drop on mydbtest.* to mydbuser2@'localhost' identified by 'my123';

Query OK, 0 rows affected (0.00 sec)

3.当权限不在需要的时候,使用revoke收回用户权限,可以全部收回,也可部分收回

首先来查看mydbuser在mydbtest中的权限,在mysql库中,有个db表,记录着每个数据库及对应用户的权限mysql> select * from mysql.db where user='mydbuser'\G

*************************** 1. row ***************************

Host: localhost

Db: mydbtest

User: mydbuser

Select_priv: Y

Insert_priv: Y

Update_priv: Y

Delete_priv: Y

Create_priv: Y

Drop_priv: Y

Grant_priv: N

References_priv: Y

Index_priv: Y

Alter_priv: Y

Create_tmp_table_priv: Y

Lock_tables_priv: Y

Create_view_priv: Y

Show_view_priv: Y

Create_routine_priv: Y

Alter_routine_priv: Y

Execute_priv: Y

Event_priv: Y

Trigger_priv: Y

1 row in set (0.00 sec)

4.收回mydbuser对mydbtest库的delete、drop、index操作权限。

mysql> revoke delete,drop,index on mydbtest.* from mydbuser@'localhost';

Query OK, 0 rows affected (0.00 sec)

revoke与grant使用方法类似,只需要将to改成from即可。

5.收回mydbuser对mydbtest库所有的操作权限mysql> revoke all on mydbtest.* from mydbuser@localhost;

Query OK, 0 rows affected (0.00 sec)


http://www.niftyadmin.cn/n/887256.html

相关文章

服务器br0网桥地址修改 命令,详解修改docker启动默认网桥docker0为自定义网桥

自定义网桥除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器。在启动 Docker 服务的时候,使用 -b BRIDGE或--bridgeBRIDGE 来指定使用的网桥。如果服务已经运行,那需要先停止服务,并删除旧的网桥。$ sudo service docke…

mysql boolean转字符串_Java项目中如何将Boolean与字符串进行转换

Java项目中如何将Boolean与字符串进行转换发布时间:2020-11-26 15:55:40来源:亿速云阅读:100作者:LeahJava项目中如何将Boolean与字符串进行转换?相信很多没有经验的人对此束手无策,为此本文总结了问题出现…

mysql问题分析工具_mysql数据库 使用分析工具 进行慢查询分析

优化sql语句步骤:1.发现问题2.分析执行计划3.优化索引4.改写sql(再达不到优化效果的话 进行数据库分库分表)1.发现问题途径1.用户上报性能问题2.慢查询日志发现问题SQL3.数据库实时监控长时间运行的SQL2.设置MYSQLset global slow_query_log on/off (慢查询开关)set global sl…

mysql+e+eof_25.第19章 MYSQL数据库

一.mysql数据库基于二进制包一键安装脚本#mysq5.6基于二进制包一键安装脚本#!/bin/bash##********************************************************************#Author: zhanghui#QQ: 19661891#Date: 2021-01-26#FileName: install_mysql5.6.sh#URL: www.neteagl…

mysql 远程过程调用(rpc)协议出现错误 怎么解决_遭遇:“传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确” 错误...

http://www.cnblogs.com/delphinet/archive/2010/03/09/1681777.html正在写一个类似文章的发表系统。其中记录文章内容的字段Contents设计为varchar(Max)类型。其中在DAL层调用存储过程来插入数据的参数SqlParameter[] parameters {new SqlParameter("Contents", Sq…

Vue mixins(混合)的理解,有哪些应用场景?源码分析

一、mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类。 Mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂。 Vue中的mixin 先来…

在MySQL中怎么进行多表删除_MySQL中多表删除方法

如果您是才接触MySQL的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助。1、从MySQL数据表t1中把那些id值在数据表t2里有匹配的记录全…

vue插槽之slots

插槽slot&#xff1a;本质就是向组件传递一个DOM。 index.html&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.panel{border: 1px solid #ececec;}.…