MySQL 用户和权限管理命令汇总 |
您所在的位置:网站首页 › mysql数据库权限查看 › MySQL 用户和权限管理命令汇总 |
目 录
一、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.userhost:代表授权用户(%可远程可本地登录,localhost只能本地登录) user:代表用户名 select_priv:代表查询权限 insert_priv:代表插入权限 update_priv:代表更新权限 ![]() ![]() 删除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 |