首页 > 数据库技术 > 详细

mysql用户操作

时间:2019-08-18 13:35:35      阅读:111      评论:0      收藏:0      [点我收藏+]

一.查看mysql版本

技术分享图片

二.用户管理

1.创建用户

格式:create user "username"@"host" identified by "password";

1.mysql->create user ‘test‘@‘localhost‘ identified by ‘123‘;
2.mysql->create user ‘test‘@‘192.168.7.22‘ identified by ‘123‘; 3.mysql->create user ‘test‘@‘%‘ identified by ‘123‘;

host="localhost"为只有本机可以登陆,host="ip"为指定ip地址登录,host="%"为不限制IP登录

如果提示错误:  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

技术分享图片

解决办法:

参见    https://blog.csdn.net/Hello_World_QWP/article/details/79551789

1、查看 mysql 初始的密码策略
输入语句  SHOW VARIABLES LIKE ‘validate_password%‘; 

技术分享图片

关于 mysql 密码策略相关参数;
1)、validate_password_check_user_name   验证用户名;

2)、validate_password_dictionary_file     指定密码验证的文件路径;

3)、validate_password_length          固定密码的总长度;

4)、validate_password_mixed_case_count     整个密码中至少要包含大/小写字母的总个数;

5)、validate_password_number_count       整个密码中至少要包含阿拉伯数字的个数;

6)、validate_password_policy          指定密码的强度验证等级,默认为 MEDIUM;

7)、validate_password_special_char_count    整个密码中至少要包含特殊字符的个数;

***关于 validate_password_policy 的取值:

  • 0/LOW:    只验证长度;
  • 1/MEDIUM:   验证长度、数字、大小写、特殊字符;
  • 2/STRONG:  验证长度、数字、大小写、特殊字符、字典文件;

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 0/LOW 即可,
set global validate_password_policy=LOW;  或  set global validate_password_policy=0;  进行设置

技术分享图片

技术分享图片

3、密码长度通过 set global validate_password_length=整数;     进行设值,如:  set global validate_password_length=6;

技术分享图片

4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;   可以看到修改成功,表示密码策略修改成功了!!!

技术分享图片

注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 4 ,如果想要将长度设置为3,可以采用先设置为0后再设置为3

set global validate_password_length=1/2/3;    validate_password_length=4 

set global validate_password_length=0;     validate_password_length=2

技术分享图片

2.删除用户

  drop user ‘用户名‘@‘IP地址‘;

3.修改用户

  rename user ‘用户名‘@‘IP地址‘ to ‘新用户名‘@‘IP地址‘;

4.修改密码

  set password for ‘用户名‘@‘IP地址‘=Password(‘新密码‘);

三.授权管理

1.查看用户权限:  show grants for ‘用户‘@‘IP地址‘

技术分享图片

2.授权:    GRANT 权限 ON 数据库名.表名 TO 用户名@‘%‘ IDENTIFIED BY ‘数据库密码‘

 

实例:

grant create view on yisa_oe.* to yisa_cx@‘%‘;                 创建视图权限

grant show view on yisa_oe.locationView to yisa_cx@‘%‘;             显示视图权限

grant select(table), update(table) on *.locationView to yisa_cx@‘localhost‘;  查询更新权限

Mysql支持的权限

ALL或ALL PRIVILEGES  代表指定权限等级的所有权限。
ALTER               允许使用ALTER TABLE来改变表的结构,ALTER TABLE同时也需要CREATE和INSERT权限。重命名一个表需要对旧表具有ALTER和DROP权限,对新表具有CREATE和INSERT权限。
ALTER ROUTINE       允许改变和删除存储过程和函数
CREATE              允许创建新的数据库和表
CREATE ROUTINE      允许创建存储过程和包
CREATE TABLESPACE   允许创建、更改和删除表空间和日志文件组
CREATE TEMPORARY TABLES     允许创建临时表
CREATE USER         允许更改、创建、删除、重命名用户和收回所有权限
CREATE VIEW         允许创建视图
DELETE              允许从数据库的表中删除行
DROP                允许删除数据库、表和视图
EVENT               允许在事件调度里面创建、更改、删除和查看事件
EXECUETE            允许执行存储过程和包
FILE                允许在服务器的主机上通过LOAD DATA INFILE、SELECT ... INTO OUTFILE和LOAD_FILE()函数读写文件
GRANT OPTION        允许向其他用户授予或移除权限
INDEX               允许创建和删除索引
INSERT              允许向数据库的表中插入行
LOCK TABLE          允许执行LOCK TABLES语句来锁定表
PROCESS             允许显示在服务器上执行的线程信息,即被会话所执行的语句信息。这个权限允许你执行SHOW PROCESSLIST和mysqladmin processlist命令来查看线程,同时这个权限也允许你执行SHOW ENGINE命令
PROXY               允许用户冒充成为另外一个用户
REFERENCES          允许创建外键
RELOAD              允许使用FLUSH语句
REPLICATION CLIENT  允许执行SHOW MASTER STATUS,SHOW SLAVE STATUS和SHOW BINARY LOGS命令
REPLICATION SLAVE   允许SLAVE服务器连接到当前服务器来作为他们的主服务器
SELECT              允许从数据库中查询表
SHOW DATABASES      允许账户执行SHOW DATABASE语句来查看数据库。没有这个权限的账户只能看到他们具有权限的数据库。
SHOW VIEW           允许执行SHOW CREATE VIEW语句
SHUTDOWN            允许执行SHUTDOWN语句和mysqladmin shutdown已经mysql_shutdown() C API函数
SUPER               允许用户执行CHANGE MASTER TO,KILL或mysqladmin kill命令来杀掉其他用户的线程,允许执行PURGE BINARY LOGS命令,通过SET GLOBAL来设置系统参数,执行mysqladmin debug命令,开启和关闭日志,即使read_only参数开启也可以执行update语句,打开和关闭从服务器上面的复制,允许在连接数达到max_connections的情况下连接到服务器。
TRIGGER             允许操作触发器
UPDATE              允许更新数据库中的表
USAGE               代表没有任何权限,只能登陆

 

# 表示有所有的权限,除了grant这个命令,这个命令是root才有的。
grant all privileges  on db1.t1 to "mjj"@‘%‘;

#取消权限
取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限

revoke all on db1.* from ‘mjj‘@"%";  

取消来自远程服务器的mjj用户所有数据库的所有的表的权限
revoke all privileges on ‘*‘ from ‘mjj‘@‘%‘;

 

授权与刷新数据库

 技术分享图片

 

mysql用户操作

原文:https://www.cnblogs.com/rockg/p/11371842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!