MySQL 用户和权限管理命令汇总

您所在的位置:网站首页 mysql数据库权限查看 MySQL 用户和权限管理命令汇总

MySQL 用户和权限管理命令汇总

2024-02-19 19:35| 来源: 网络整理| 查看: 265

目 录 一、mysql的权限系统简述1、用户验证2、MySQL 访问权限系统表 二、查看用户1、查看所有用户信息(包括授权信息)2、查看用户权限信息3、用户重命名4、删除用户5、修改用户密码 三、创建用户1、create方法2、insert方法 四、用户授权1、用户权限管理的重要性2、添加和回收权限

一、mysql的权限系统简述 1、用户验证

   第一阶段(身份认证): 用户输入 mysql -u [用户名] -p [密码] 登录之后,服务器会在user表中查询用户名、密码和主机信息是否有对应的数据,如果有对应的数据则身份验证通过,允许用户登录,否则返回1045错误提示给用户。

    第二阶段(权限分配): 用户连接登录后,服务器会检查全局权限表user中的数据,如果数据全为Y,则直接放权。如果数据中存在N则进入db表中检查该用户可访问的数据库,如果数据中含有Y则直接放权限,如果有数据N的话再检查tables_priv表对应的具体表…

2、MySQL 访问权限系统表

mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表

user (存放用户账号、密码、主机信息和全局权限db (数据库级别的权限表)tables_priv (表级别的权限表)columns_priv (列级权限表)procs_priv (函数/存储过程权限表) 二、查看用户 1、查看所有用户信息(包括授权信息) SELECT [*/指定字段] FROM mysql.user; 查询脚本查询结果select * from mysql.user

host:代表授权用户(%可远程可本地登录,localhost只能本地登录)

user:代表用户名

select_priv:代表查询权限

insert_priv:代表插入权限

update_priv:代表更新权限

2、查看用户权限信息 SHOW GRANTS FOR [用户名]@[主机名]; 查询脚本查询结果show grants for root@'localhost'; 3、用户重命名 RENAME USER [旧用户名]@[旧主机名] TO [新用户名]@[新主机名]; 预计查询结果查询脚本将ip地址192.168.112.111主机里的mysql服务器的用户xuesheng名字改为laoshi中rename user 'xuesheng'@'192.168.112.111' to 'laoshi'@'192.168.112.111'; 4、删除用户 DROP user [用户名]@[主机名];

删除192.168.112.111主机里用户名为laoshi的用户,drop user 'laoshi'@'192.168.112.111';

5、修改用户密码

在mysql服务器中修改用户密码的方法一共有4种,具体方法分别如下:

(1) ALTER USER [用户名]@[主机名] IDENTIFIED BY [新密码]; (2) SET PASSWORD FOR [用户名]@[主机名] = PASSWORD([新密码]); (3) GRANT USAGE ON *.* TO [用户名]@[主机名] IDENTIFIED BY [新密码]; (4) UPDATE user SET password=password([新密码]) where user='root' and host='localhost'; (注意:user表中的密码字段需要查表之后才知道是具体字段名称) 三、创建用户

创建用户一般有create和insert这两种方法

1、create方法 CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';

各项参数解析:

各项参数解析例子展示user_name:用户名create user 'xuesheng'@'127.0.0.1' indentifed by "abc123"

创建只能在本机登录的用户名为xuesheng的用户账号,这个用户的密码为 abc123

host:这个用户登录的主机名,只允许从本机登录则填写localhost或127.0.0.1或::1,如允许远程登录则填写%create user ''@'localhost' indentifed by "abc123

匿名用户可以通过密码 abc123 在本机中登录

password:用户登录的密码create user 'xuesheng'@'%'

用户 xuesheng 可以无需密码验证远程登录

注意:  1、代表用户的语法:用户名@登录主机名 【即是 'user_name'@'host_name'】  2、没有用户名的都是匿名用户 (如:''@localhost 直接用select user from mysql.user where user="")   3、host_name可以是ip地址(127.0.0.1代表ipv4的本机地址 / ::1代表是ipv6的本机地址 例如:root@ 120.235.171.136 从主机与120.235.171.136连接 )   4、host_name可以是%.域名 (意思为该域名下的所有主机都可以登录,例如:xuesheng01@%.edu.gov 代表用户名xuesheng01的用户edu.gov域中的任何主机连接

2、insert方法

通过insert直接操作mysql的用户表 INSERT INTO user SET Host=’%’,User=‘xuesheng02’,Reload_priv=‘Y’, Process_priv=‘Y’;

用户权限名称权限解析Select_priv确定用户的select命令权限Insert_priv确定用户的insert命令权限Update_priv确定用户的update命令权限Delete_priv确定用户的delete命令权限Create_priv确定用户create命令权限Drop_priv确定用户的drop命令权限Reload_priv确定用户刷新和重新加载MySQL命令权限,可以执行flush [tables / logs / privileges]Process_priv确定用户的show process命令权限Shutdown_priv确定用户是否可以关闭mysql服务器权限Grant_priv确定用户所拥有权限赋权给别的用户

_________________________________________________________________________________________________________________

四、用户授权 1、用户权限管理的重要性

   1、用户管理可以控制用户能访问哪些数据库和哪些数据表    2、用户管理可以控制用户对哪些表执行查询、创建、删除等操作    3、用户管理可以控制用户登录的ip或域名    4、用户管理可以控制用户自己的权限或者分配自己的权限给其他用户

2、添加和回收权限

 一、添加权限语法:

GRANT [具体权限/all privileges] ON [数据库.数据表] TO [用户名]@[IP/localhost/域名/%] IDENTIFIED BY [密码] [WITH GRANT OPTION]

 二、删除权限语法:

REVOKE [具体权限/all privileges] ON [数据库.数据表] FROM [用户名]@[IP/localhost/域名/%];

 注意:(一般授权或者回收权限后,需要 flush privileges;)   all privileges 代表所有权限   ON 表示可以在哪个库里的哪种表执行,*号代表所有库或所有表   TO 表示授权给哪个用户   IDENTIFIED BY 表示指定用户登录密码   WITH GRANT OPTION 表示用户可以将自己的权限分配给其他用户

赋权例子例子解析grant all privileges on *.* to 'xuesheng'@'localhost' identified by 'xs123' with grant option;添加所有权限给在本机凭借密码xs123登录的用户名为xuesheng 的用户而且权限可以分配给其他用户revoke delete on *.* from 'xuesheng'@'localhost';回收xuesheng用户的创建权限grant create temporary tables on school.* to 'xuesheng'@'localhost';本机用户xuesheng可以在school库中的所有表执行create temporary tables命令grant show view on school.* to xuesheng@localhost;本机用户xuesheng可以在school库中的所有表执行show create view命令


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3