Mysql创建用户、设置密码、授权以及删除

前言

Mysql数据库中的口令存储必须用password()函数加密,因为在mysql库中的user表中是以加密形式存储口令,而不是纯文本。

mysql创建用户的方法分成三种:INSERT USER表的方法、CREATE USER的方法、GRANT的方法。账号名称的构成方式

账号的组成方式:用户名@主机(所以可以出现重复的用户名,跟其他的数据库不一样)

用户名:16字符以内

主机名:可以用主机名和IP地址,也可以用通配符。

通配符说明:192.168.166.%(IP地址为192.168.166段的所有IP地址都可以访问)

脚本:CREATE USER 'username'@'host' [IDENTIFIED BY 'PASSWORD'] 其中密码是可选项

一、创建用户

-- 创建数据库名为'db_test'
CREATE DATABASE db_test;


-- 创建用户名为'user',密码为'passwd'
CREATE USER user IDENTIFIED BY 'passwd';

-- 创建用户名为'user',所有的IP地址都可以使用
CREATE USER 'user'@'%';

-- 创建用户名为'user'是不限制用户访问的IP也就是'%',密码为'passwd'
CREATE USER 'user'@'%' IDENTIFIED BY 'passwd';

-- 创建用户名为'user',只能本地访问,密码为'passwd'
CREATE USER user@'localhost' IDENTIFIED BY 'passwd';

-- IP地址为192.168.166段的所有IP地址都可以使用'user'用户,密码为'passwd'远程访问所有的数据库
CREATE USER 'user'@'192.168.166.%' IDENTIFIED BY "passwd";

二、设置密码 

1.管理员身份打开cmd命令窗口,在shell下直接使用:

-- 设置'root'用户的密码为'new_passwd',旧密码为'old_passwd'
mysqladmin -u root -p password new_passwd old_passwd

2.用root 进入mysql后 :

-- 修改root用户的密码为'your password'
set password =password('your password'); 
flush privileges;

-- 修改用户'user'的密码为'new_passwd'
set password for user = password("your new_passwd");
flush privileges;
-- 修改用户'user'的密码为'new_passwd'
set password for user@'%'= Password('your new_passwd');
flush privileges;
-- 创建/修改用户
use mysql;
insert into user(host,user,password) values('%','user_name',password("your password");
flush privileges; 

3.使用GRANT语句,在创建一个用户时直接设置密码,grant语句将自动加密口令:

-- 所有的地址都可以使用user用户,确认密码为'your password'远程访问所有的数据库
grant all on *.* to user@% IDENTIFIED BY "your password";
flush privileges; 

-- 本地可以使用'root'用户,确认密码为'your password' 使用GRANT选项
grant all on *.* to 'root'@'localhost' IDENTIFIED BY 'your password' WITH GRANT OPTION;
flush privileges;

4.进入mysql库修改user表 :

use mysql; 
update user set password=password('你的密码') where user='root'; 
flush privileges; 

三、授权

-- 授权'user'用户可以操作'db_test'库的所有权限
GRANT ALL PRIVILEGES on db_test.* TO user@'%';

-- 授权用户'user'可以操作'db_test'库的所有权限,密码为'passwd'
GRANT ALL PRIVILEGES ON db_test.* TO user@'%' IDENTIFIED BY 'passwd';

-- 授权user可以操作db_test库的指定的权限
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, REFERENCES, INDEX, ALTER ON db_test.* TO user@'%';

-- 刷新权限
FLUSH PRIVILEGES; 

重载授权表 管理员身份打开cmd命令窗口,在shell下直接使用:

mysqladmin -u root reload

或者

mysqladmin -u root flush-privileges

四、删除用户

-- 删除授权
revoke privileges (columns) on what from user;
revoke all PRIVILEGES ON `db_taxi_mang`.* from 'utm'@'%';
-- 删除用户 方法一
delete from mysql.user where user='user' and host='%';

-- 删除用户 方法二
DROP USER 'username'@'host'; 
-- 删除数据库
DROP DATABASE db_test;

五、查看

-- 查询用户、地址 在mysql的'user'表中
SELECT USER,HOST FROM mysql.user;

六、修改

-- 修改数据库名
RENAME DATABASE olddbname TO newdbname;

附:相关资料
https://blog.csdn.net/hbhcxs/article/details/78564262
https://blog.csdn.net/phoenixdsf/article/details/3914038

转载请注明出处:BestEternity亲笔。

猜你喜欢

转载自blog.csdn.net/BestEternity/article/details/88342723