本文共 2501 字,大约阅读时间需要 8 分钟。
在MySQL中,用户管理是系统管理员(DBA)日常工作中的重要环节。本文将详细介绍如何创建、授权、设置密码、撤销权限以及删除用户等操作。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
localhost
,如果希望用户可以从任意远程主机登录,可以使用通配符%
。CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';CREATE USER 'pig'@'192.168.1.101' IDENTIFIED BY '123456';CREATE USER 'pig'@'%' IDENTIFIED BY '123456';CREATE USER 'pig'@'%' IDENTIFIED BY '';CREATE USER 'pig'@'%';
GRANT privileges ON databasename.tablename TO 'username'@'host';
SELECT
、INSERT
、UPDATE
等。如果需要授予所有权限,可以使用ALL
。*.*
表示。GRANT SELECT, INSERT ON test.user TO 'pig'@'%';GRANT ALL ON *.* TO 'pig'@'%';GRANT ALL ON maindataplus.* TO 'pig'@'%';
GRANT
命令授权的用户不能对其他用户授权,请在授权时使用WITH GRANT OPTION
选项。GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
SET PASSWORD = PASSWORD("newpassword");
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
REVOKE SELECT ON *.* FROM 'pig'@'%';
REVOKE
命令时,需要确保权限是通过GRANT
命令授予的。如果使用的是GRANT SELECT ON *.*
,则需要使用REVOKE SELECT ON *.*
才能撤销权限。DROP USER 'username'@'host';
SELECT host, user, password FROM user;
DROP USER 'jack'@'localhost';
权限 | 权限级别 | 说明 |
---|---|---|
CREATE | 数据库、表或索引 | 创建数据库、表或索引 |
DROP | 数据库或表 | 删除数据库或表 |
GRANT OPTION | 数据库、表或程序 | 赋予权限选项 |
REFERENCES | 数据库或表 | 引用外键关系 |
ALTER | 表 | 修改表结构 |
DELETE | 表 | 删除数据 |
INDEX | 表 | 索引权限 |
INSERT | 表 | 插入权限 |
SELECT | 表 | 查询权限 |
UPDATE | 表 | 更新权限 |
CREATE VIEW | 视图 | 创建视图权限 |
SHOW VIEW | 视图 | 查看视图权限 |
ALTER ROUTINE | 存储过程 | 更改存储程序权限 |
CREATE ROUTINE | 存储程序 | 创建存储程序权限 |
EXECUTE | 存储程序 | 执行存储程序权限 |
FILE | 文件 | 访问服务器文件 |
CREATE TEMPORARY TABLES | 临时表 | 创建临时表权限 |
LOCK TABLES | 表锁 | 锁表权限 |
CREATE USER | 用户 | 创建用户权限 |
RELOAD | 服务器 | 执行flush-commands权限 |
PROCESS | 进程 | 查看进程权限 |
REPLICATION CLIENT | 复制 | 复制权限 |
REPLICATION SLAVE | 复制 | 复制权限 |
SHOW DATABASES | 数据库 | 查看数据库权限 |
SHUTDOWN | 服务器 | 关闭数据库权限 |
SUPER | 服务器 | 权限操作kill线程 |
mysql> GRANT ALL PRIVILEGES ON *.* TO jack@'localhost' IDENTIFIED BY "jack" WITH GRANT OPTION;
mysql> flush privileges;
mysql> SHOW GRANTS FOR 'jack'@'localhost';
mysql> DROP USER 'jack'@'localhost';
mysql> RENAME USER 'jack'@'%' TO jim@'%';
通过以上命令,可以轻松管理MySQL用户的权限,确保数据库安全和高效运行。
转载地址:http://lfbfk.baihongyu.com/