你可以通过两种方式创建MySQL用户:
- 通过账户管理语句,例如GRANT、CREATE USER等.
- 直接用INSERT、UPDATE、DELETE等语句操作MySQL的授权表(mysql.user、mysql.host、mysql.db、mysql.tables_priv、mysql.columns_priv)
显然方式1比方式2更简洁和有助于减少错误
另外你也可以通过GUI工具(如:MySQL WorkBench)或第三方程序(如:phpmyadmin)
a) 通过root用户(或具备CREATE USER 权限的用户)连接mysql
b) CREATE USER 语句用法
# 创建一个名为 alice 密码为 alicepass 的用户,该用户只能从 localhost 连接 CREATE USER 'alice'@
'localhost' IDENTIFIED BY
'alicepass'; # 创建一个名为 bob 密码为 bobpass 的用户,允许该用户从任意host连接 CREATE USER 'bob'@
'%' IDENTIFIED BY
'bobpass'; # 创建一个名为 chris 密码为 chrispass 的用户,该用户允许从任何 example.com 域名下的host来连接 CREATE USER 'chris'@
'%.example.com' IDENTIFIED BY
'chrispass'; c) GRANT 语句用法
# 给 bob 用户分配所有数据库的 RELOAD、PROCESS 权限,并且可以把这些权限授权给其他用户(WITH GRANT OPTION的作用) GRANT RELOAD
,PROCESS
ON *.
* TO 'bob'@
'%' WITH GRANT OPTION; # 给 chris 用户分配 customer 数据库的 SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 权限,必须从任何 example.com 域名下的host来连接 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.
* TO 'chris'@
'%.example.com'; d) REVOKE 语句用法
e) DROP USER 语句用法
# 删除 alice 用户,不再允许该用户从localhost连接,不指定host时默认为 '%' ,DROP USER不会自动关闭任何已经打开的用户SESSION,一旦SESSION被关闭则该用户即被移除 DROP USER 'alice'@
'localhost'; 转载请注明出处:
© http://hejunhao.me