MySQL 之 从控制台管理用户

MySQL打包有一个强大的安全模型,该模型能够控制几乎所有可能的用户操作,范围从他可以执行的命令到一个小时内可以执行多少个查询。

这分两个步骤进行:

1)身份验证:-检查用户的主机,用户名和密码。如果在MySQL的特权表中进行了匹配,则该用户被授权。否则,将拒绝用户的连接尝试。
2)授权:-一旦通过身份验证,将检查用户的提交命令,并将其与用户定义的特权进行比较,该特权也可在MySQL的特权表中找到。如果用户具有足够的特权,则执行该命令,否则将拒绝该命令。

创建一个新的用户帐户

要在服务器中创建新用户,请使用“ CREATE USER ”命令。请注意,如果使用此命令创建用户,则不会分配任何特权。

示例命令:

prompt> CREATE USER 'demouser'@'localhost';
prompt> CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'password';
MySQL创建新用户
MySQL创建新用户

修改密码

要更改用户密码,请使用“ SET PASSWORD ”命令。

示例命令

prompt> SET PASSWORD FOR 'demouser'@'localhost' = PASSWORD('newpassword');

重命名用户

要重命名用户,请使用“ RENAME USER ”命令。

示例命令

prompt> RENAME USER 'demouser'@'localhost' TO 'superdemouser'@'localhost';

删除用户帐号

要删除用户,请使用“ DROP USER ”命令。

示例命令

prompt> DROP USER 'superdemouser'@'localhost';
MySQL用户设置密码+重命名+删除
MySQL用户设置密码+重命名+删除

授予特权

要授予用户特权,请使用“ GRANT ”命令。

示例命令 s:

prompt> GRANT SELECT ON test.* TO 'demouser'@'localhost';
prompt> GRANT SELECT, UPDATE ON test.* TO 'demouser'@'localhost';
prompt> GRANT SELECT, DELETE ON test.* TO 'demouser'@'localhost';
MySQL Grant Privileges示例
[] MySQL Grant Privileges示例
C:Usersuser>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.41-community MySQL Community Server (GPL)
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> CREATE USER 'demouser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON test.* TO 'demouser'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> Ctrl-C -- exit!
Bye
C:Usersuser>mysql -u demouser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 8
Server version: 5.1.41-community MySQL Community Server (GPL)
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> SELECT * FROM EMPLOYEE;
ERROR 1046 (3D000): No database selected
mysql> USE TEST;
Database changed
mysql> SELECT * FROM EMPLOYEE;
+----+-----------+----------+-----------+-------+---------------------+
| ID | FIRSTNAME | LASTNAME | TELEPHONE | EMAIL | CREATED             |
+----+-----------+----------+-----------+-------+---------------------+
|  1 | lokesh    | gupta    | 1234567890| a@b.co| 2013-09-24 22:57:40 |
+----+-----------+----------+-----------+-------+---------------------+
1 row in set (0.00 sec)
mysql> DELETE FROM EMPLOYEE;
ERROR 1142 (42000): DELETE command denied to user 'demouser'@'localhost' for table 'employee'
mysql>

授予表和列特定的特权

为了用户授予特定表 e的特权,请使用带有表名的“ GRANT ”命令。

示例命令

prompt> GRANT INSERT ON test.EMPLOYEE TO 'demouser'@'localhost';
prompt> GRANT INSERT, UPDATE ON test.EMPLOYEE TO 'demouser'@'localhost';

对于特定的栏(多个)授予特权表的用户,使用“ GRANT与表名和列名”命令。

示例命令

prompt> GRANT INSERT (FIRSTNAME), SELECT (FIRSTNAME) ON test.EMPLOYEE TO 'demouser'@'localhost';

撤销特权

要撤消对用户的访问,请使用带有表名的“ REVOKE ”命令。

示例命令

prompt> REVOKE INSERT ON test.EMPLOYEE TO 'demouser'@'localhost';

学习愉快!

saigon has written 1440 articles

Leave a Reply