mysql用户帐号管理
1,用户登录:
要使用命令行客户端连接到MySQL服务器,请根据需要为要使用的帐户指定用户名和密码选项:
shell> mysql --user=finley --password db_name
shell> mysql -u finley -p db_name
如果省略了命令行上的–password或-p选项后面的密码值,客户端将提示输入密码 。
shell> mysql --user=finley --password=password db_name
shell> mysql -u finley -ppassword db_name
如果使用该-p选项,则-p与密码值之间没有空格。
2、添加用户帐号
连接到服务器后root,你可以添加新帐户。
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' WITH GRANT OPTION;
mysql> CREATE USER 'finley'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%' WITH GRANT OPTION;
创建的帐户具有以下属性:
- 两个帐户的用户名为finley。两者都是具有完全权限的超级用户帐户。’finley’@’localhost’帐户只能在从本地主机连接时使用。’finley’@’%’帐户使用 ‘%’通配符作为主机部分,因此可用于从任何主机连接。
要查看帐户的权限,可以使用 SHOW GRANTS:
mysql> SHOW GRANTS FOR 'admin'@'localhost';
+-----------------------------------------------------+
| Grants for admin@localhost |
+-----------------------------------------------------+
| GRANT RELOAD, PROCESS ON *.* TO 'admin'@'localhost' |
+-----------------------------------------------------+
下一个示例创建三个帐户并授予他们对特定数据库的访问权限。他们每个用户名 custom和密码为 password:
mysql> CREATE USER 'custom'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO 'custom'@'localhost';
mysql> CREATE USER 'custom'@'host47.example.com' IDENTIFIED BY 'password';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> TO 'custom'@'host47.example.com';
mysql> CREATE USER 'custom'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO 'custom'@'%.example.com';
三个帐户可以使用如下:
- 第一个帐户可以访问 bankaccount数据库,但只能从本地主机访问。
- 第二个帐户可以访问expenses 数据库,但只能从主机访问 host47.example.com。
- 第三个帐户可以customer 从example.com 域中的任何主机访问数据库。由于使用%帐户名称的主机部分中的通配符,该帐户可以访问域中所有计算机。
3、删除用户帐号
要删除帐户,使用DROP USER语句 。例如:
mysql> DROP USER 'jeffrey'@'localhost';
4、修改用户帐号密码
SET PASSWORD可以使用或不使用FOR明确命名用户帐户的子句:
- 使用子句,该语句为指定帐户设置密码。
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
- 不使用子句,该语句设置当前用户的密码。
SET PASSWORD = 'auth_string';
5、回收用户帐号权限
回收用户指定的权限,如回收INSERT权限。
REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
要撤消用户所有权限,可以使用下面语法。
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...