首页 > 技术文章 > MySQL 用户管理

Alay 2021-08-22 11:56 原文

创建新用户:

-- 创建用户名为'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";

 

删除用户

-- 删除用户 方法一
delete from mysql.user where user='user' and host='%';
-- 删除用户 方法二
DROP USER 'username'@'host'; 

 

查看

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

 

设置密码

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;

授权

-- 查看权限
SELECT * FROM mysql.`user`
-- 授权'braineex' 用户可以操作'release'库的所有权限,`` 符号可用可不用
GRANT ALL PRIVILEGES ON `release`.* TO `braineex`@'%';
-- 授权用户'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`@'%';
-- 删除授权
 
REVOKE PRIVILEGES ( COLUMNS ) 
ON
  what
FROM   USER;
-- 删除 user 用户 对 库 db_test (*.* 表示所有数据库所有表) 下的 所有表 的 所有权限:
REVOKE 
  ALL PRIVILEGES 
ON 
  `db_test`.* 
FROM
  `user` @'%';
-- REPLICATION CLIENT(客户端)、REPLICATION SLAVE(服务端)、SUPER(管理)和 RELOAD 四个权限最好在创建用户时就赋予,
-- 以免造成不必要的麻烦,当然,要是主主配置,最好给予ALL权限。
 
GRANT
  REPLICATION SLAVE,
  SUPER,
  RELOAD,
  REPLICATION CLIENT
ON 
   *.* 
TO 
  user@'%';
-- 刷新权限
FLUSH PRIVILEGES;

权限

上下文

CREATE

Create_priv

数据库、表或索引

DROP

Drop_priv

数据库或表

GRANT OPTION

Grant_priv

数据库、表或保存的程序

REFERENCES

References_priv

数据库或表

ALTER

Alter_priv

DELETE

Delete_priv

INDEX

Index_priv

INSERT

Insert_priv

SELECT

Select_priv

UPDATE

Update_priv

CREATE VIEW

Create_view_priv

视图

SHOW VIEW

Show_view_priv

视图

ALTER ROUTINE

Alter_routine_priv

保存的程序

CREATE ROUTINE

Create_routine_priv

保存的程序

EXECUTE

Execute_priv

保存的程序

FILE

File_priv

服务器主机上的文件访问

CREATE TEMPORARY TABLES

Create_tmp_table_priv

服务器管理

LOCK TABLES

Lock_tables_priv

服务器管理

CREATE USER

Create_user_priv

服务器管理

PROCESS

Process_priv

服务器管理

RELOAD

Reload_priv

服务器管理

REPLICATION CLIENT

Repl_client_priv

服务器管理

REPLICATION SLAVE

Repl_slave_priv

服务器管理

SHOW DATABASES

Show_db_priv

服务器管理

SHUTDOWN

Shutdown_priv

服务器管理

SUPER

Super_priv

服务器管理

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

mysqladmin -u root reload
-- 或者
mysqladmin -u root flush-privileges

 

推荐阅读