首页 > 数据库 >MySQL数据库之用户管理

MySQL数据库之用户管理

时间:2022-11-27 19:57:05浏览次数:67  
标签:用户名 数据库 用户 密码 user MySQL 权限

一、数据库用户管理

1.1 新建用户

 CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
复制代码

'用户名': 指定将创建的用户名。

'来源地址': 指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost, 允许任意主机登录可用通配符%

'密码':

  • 若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
  • 若使用加密密码,需要先使用SELECT PASSWORD('密码'); 获取密文,再在语句中添加PASSWORD '密文';
  • 若省略"IDENTIFIED BY" 部分,则用户的密码将为空(不建议使用)

示例1:使用明文密码创建用户

只允许zhangsan用户从本地登录:

 CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123123';

 

 

 

 

1.2 查看用户信息

 

 

1.3 重命名用户 rename

 

 

1.4 删除用户信息 drop

 

 

1.5 修改当前登录用户的密码

 

 

1.6 修改其他用户的密码

 

 

1.7 忘记root用户密码的解决办法

 

 

 

 

 

 

 

 

 

 

 

 

1.8 查看当前登录用户

 

 

二、数据库用户授权

2.1 授予用户权限

GRANT语句:专门用来设置数据库用户的访问权限。

  • 当指定的用户名不存在时,GRANT语句将会创建新的用户;
  • 当指定的用户名存在时,GRANT 语句用于修改用户信息。
允许用户 zhangsan 在本地查询school数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。使用密码“123456”进行登录。

 

 

 

 使用zhangsan 用户在本地登录查看:

 

 

 

 

 

 

 

 

2.2 查看用户的权限

 

 

 

 

USAGE特权说明符:

USAGE特权说明符,表示“无特权”。它与GRANT一起在全局级别上使用,以在不影响现有帐户特权的情况下修改帐户属性(例如资源限制或SSL特征)。

USAGE是一种在没有授予任何真实特权的情况下告诉MySQL帐户存在的方法。因此,他们仅具有使用 MySQL服务器的权限USAGE。它对应于mysql.user表中未设置特权的行。

对于GRANT USAGE ON,查看⼿册有如下介绍和实例:

mysql> GRANT USAGE ON . TO 'zhangkh'@'localhost’;

⼀个账户有⽤户名zhangkh,没有密码。该账户只⽤于从本机连接(即登录MySQL)。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户⽽不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。


2.3 撤销用户的权限

针对用户 nancy@%,撤销其除了登录权限外的其他权限。

 revoke all on *.* from 'nancy'@%;

 

 

 

 

总结

MySQL的相关使用可查看官方手册:

MySQL :: MySQL 8.0 Reference Manual :: 6.2.2 Privileges Provided by MySQL

1、用户管理

 create user 'username'@'address' identified by 'password';   #创建用户
 ​
 select user,host,authentication_string from mysql.user;      #查看用户信息
 ​
 rename user old_user to new_user;        #修改用户名
 ​
 drop user '用户名'@'来源地址';            #删除用户
 ​
 set password = password('XXXX');         #修改当前登录用户的密码
 ​
 set password for '用户名'@'来源地址' = password('XXXX');     #修改其他用户的密码
 ​
 select user ();      #查看当前登录用户和来源地址
 ​
 ###忘记root用户密码的解决方法:
 修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables
 service mysqld restart   #重启服务
 mysql    #免密登陆  
 update mysql.user set authentication_string=password('XXX') where user='root';  #修改密码
 flush privileges;    #刷新数据库
复制代码

2、用户授权

 #授予用户权限
 grant 权限列表/ALL ON 库名.表名 to 'username'@'address' [identified by 'XXXXX'];
 ​
 show grants;                               #查看当前用户(自己)的权限
                      
 show grants for 'username'@'address';      #查看其他用户的权限
 ​
 revoke 权限列表/ALL on 库名.表名 from 'username'@'address';    #撤销用户的权限
 ​
 mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号              #远程连接mysql

 

 

 

 

 

 

 

 

标签:用户名,数据库,用户,密码,user,MySQL,权限
From: https://www.cnblogs.com/jct166289/p/16930453.html

相关文章

  • pymysql的使用
    importpymysql#连接数据库conn=pymysql.connect(host='101.133.225.166',user='root',password="123456",database='test',port=3306)##获取游标cursor=conn.......
  • 11.27MySQL周末总结
    目录§并发编程§一、线程理论1.本质2.特点3.创建线程的两种方式4.线程对象的其他方法5.同进程内多个线程数据共享二、互斥锁1.互斥锁的作用2.互斥锁lock三、GIL全局解释器......
  • Mysql-事务
    DROPTABLEIFEXISTSaccount;--创建账户表CREATETABLEaccount(idintPRIMARYKEYauto_increment,namevarchar(10),moneydouble(10,2));--添加数据INSER......
  • Mysql事务
    一、事务概述1、事务的概念是一种机制,一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么......
  • docker运行mysql
    安装yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2--skip-broken启动systemctlstartdocker#启动Docker服务systemctlstopdocker#停止Do......
  • rac dg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志
    问题描述:racdg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志中出现ORA-15025、ORA-27041异常,如下所示:说明:racdg磁盘组采用的是多路径+ud......
  • MYSQL基础操作和用户授权管理
    一.数据库概述1.1数据表对应的文件MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩......
  • MySQL数据库基础
    一、数据库的基本概念数据(Data):描述事务的符号记录包括数字、文字、图形、图像、声音、档案记录以”记录“形式按统一的格式进行存储表:将不同的记录组织在一起用......
  • 数据库进阶之各种关键字
    目录数据库进阶之各种关键字今日内容概要今日内容详细报错及作业讲解SQL语句查询关键字前期数据准备编写SQL语句的小技巧查询关键字之where筛选查询关键字之groupby分组查......
  • 9 连接数据库实现注册功能
    1、html页面位置polls/templates内容:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>注册</title></head><body><formaction="......