1.create user
2.grant
3.revoke
4.drop
5.rename
6.show grants for
1.create user
账号的组成方式:用户名+主机 用户名:16字符以内 主机名:可以用主机名和IP地址,也可以用通配符:172.16.1.%
语法
mysql> help create user;
Name: 'CREATE USER'
Description:
Syntax:
CREATE USER [IF NOT EXISTS]
user [auth_option] [, user [auth_option]] ...
[REQUIRE {NONE | tls_option [[AND] tls_option] ...}]
[WITH resource_option [resource_option] ...]
[password_option | lock_option] ...
user:
(see )
auth_option: {
IDENTIFIED BY 'auth_string'
| IDENTIFIED WITH auth_plugin
| IDENTIFIED WITH auth_plugin BY 'auth_string'
| IDENTIFIED WITH auth_plugin AS 'auth_string'
| IDENTIFIED BY PASSWORD 'auth_string'
}
tls_option: {
SSL
| X509
| CIPHER 'cipher'
| ISSUER 'issuer'
| SUBJECT 'subject'
}
resource_option: {
MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
}
password_option: {
PASSWORD EXPIRE
| PASSWORD EXPIRE DEFAULT
| PASSWORD EXPIRE NEVER
| PASSWORD EXPIRE INTERVAL N DAY
}
lock_option: {
ACCOUNT LOCK
| ACCOUNT UNLOCK
}复制
举例
CREATE USER jss001@'192.168.%.%' IDENTIFIED BY "jss001";
CREATE USER jss001@localhost IDENTIFIED BY "jss001"; -- localhost与具体的主机不一定密码相同
CREATE USER jss002@'%' IDENTIFIED BY "jss002";
CREATE USER jss003@'%';-- 需要后期再授权
SELECT HOST,USER FROM mysql.user;复制
2.grant
语法
mysql> help grant;
Name: 'GRANT'
Description:
Syntax:
GRANT
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user [auth_option] [, user [auth_option]] ...
[REQUIRE {NONE | tls_option [[AND] tls_option] ...}]
[WITH {GRANT OPTION | resource_option} ...]
GRANT PROXY ON user
TO user [, user] ...
[WITH GRANT OPTION]
object_type: {
TABLE
| FUNCTION
| PROCEDURE
}
priv_level: {
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
}
user:
(see https://dev.mysql.com/doc/refman/5.7/en/account-names.html)
auth_option: {
IDENTIFIED BY 'auth_string'
| IDENTIFIED WITH auth_plugin
| IDENTIFIED WITH auth_plugin BY 'auth_string'
| IDENTIFIED WITH auth_plugin AS 'auth_string'
| IDENTIFIED BY PASSWORD 'auth_string'
}
tls_option: {
SSL
| X509
| CIPHER 'cipher'
| ISSUER 'issuer'
| SUBJECT 'subject'
}
resource_option: {
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
}复制
举例
-- 所有权限授权
GRANT ALL PRIVILEGES ON *.* TO 'jss001'@'localhost' WITH GRANT OPTION;
mysql> show grants for 'jss001'@localhost;
+-----------------------------------------------------------------------+
| Grants for jss001@localhost |
+-----------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jss001'@'localhost' WITH GRANT OPTION |
+-----------------------------------------------------------------------+
GRANT ALL PRIVILEGES ON jssdb001.* TO 'jss001'@'localhost' IDENTIFIED BY 'jss001'; --授权某个库
GRANT ALL PRIVILEGES ON jssdb001.`jss_t1` TO 'jss001'@'localhost' ; --授权某个表
GRANT ALL PRIVILEGES ON jssdb001.`jss_t1`.`name` TO --授权某个列 'jss001'@'localhost' ;
SHOW GRANTS FOR jssdb001'jss001';
FLUSH PRIVILEGES; --刷新权限
-- 一般用户授权
GRANT INSERT,UPDATE,SELECT,DELETE ON jssdb001.`jss_t1` TO 'jss001'@'%';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,DROP ON jssdb001.* TO jss001@'%';
GRANT REFERENCES ON jssdb001.* TO jss001@'%'; -- 外键的权限
GRANT CREATE TEMPORARY TABLES ON jssdb001.* TO jss001@'%'; -- 临时表的权限
GRANT INDEX ON jssdb001.* TO jss001@'%'; -- 索引
GRANT CREATE VIEW,SHOW VIEW ON jssdb001.* TO jss001@'%'; -- 视图
GRANT CREATE ROUTINE,ALTER ROUTINE ON jssdb001.* TO jss001@'%'; -- 存储过程
GRANT EVENT,TRIGGER ON jssdb001.* TO jss001@'%'; -- 事件,触发器
GRANT LOCK TABLES ON jssdb001.* TO jss001@'%'; -- 锁表
GRANT EXECUTE ON PROCEDURE proc_name TO jss001@'%';
GRANT EXECUTE ON FUNCTION func_name TO jss001@'%';复制
3.revoke
语法
mysql> help revoke;
Name: 'REVOKE'
Description:
Syntax:
REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...
REVOKE ALL [PRIVILEGES], GRANT OPTION
FROM user [, user] ...
REVOKE PROXY ON user
FROM user [, user] ...复制
举例
REVOKE ALL PRIVILEGES ON *.* FROM'jss001'@'localhost' WITH GRANT OPTION;
REVOKE INSERT,UPDATE,SELECT,DELETE ON jssdb001.`jss_t1` FROM 'jss001'@'%';复制
4.drop
mysql> SELECT HOST,USER FROM mysql.user;
+-------------+---------------+
| HOST | USER |
+-------------+---------------+
| % | jss002 |
| % | jss003 |
| % | root |
| 192.168.%.% | jss001 |
| localhost | jss001 |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-------------+---------------+
-- 举例
mysql> drop user jss001@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user jss001@'192.168.%.%';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT HOST,USER FROM mysql.user;
+-----------+---------------+
| HOST | USER |
+-----------+---------------+
| % | jss002 |
| % | jss003 |
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+复制
5.rename
--重命名用户
mysql> rename user jss002@'%' to jss0022@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT HOST,USER FROM mysql.user;
+-----------+---------------+
| HOST | USER |
+-----------+---------------+
| % | jss0022 |
| % | jss003 |
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+复制
6.show grants for
mysql> grant insert,update,delete,select,create,alter,drop on *.* to jss0022@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for jss0022@'%';
+-----------------------------------------------------------------------------------+
| Grants for jss0022@% |
+-----------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON *.* TO 'jss0022'@'%' |
+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)复制
文章转载自数据库BOSS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3382次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
912次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
541次阅读
2025-04-17 17:02:24
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
363次阅读
2025-04-30 17:37:37
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
306次阅读
2025-04-28 11:01:25
SQL优化 - explain查看SQL执行计划(下)
金同学
302次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
294次阅读
2025-04-30 12:17:54
MySQL 官方准备了 3 个月的羊毛,万万没想到 8 天就被薅秃了,看看JieKeXu怎么说?
青年数据库学习互助会
278次阅读
2025-05-09 10:07:42
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
252次阅读
2025-04-18 20:21:32
4月“墨力原创作者计划”获奖名单公布!
墨天轮编辑部
208次阅读
2025-05-13 16:21:59