本文摘自PHP中文网,作者藏色散人,侵删。
当前使用的user及host:1 2 3 4 5 6 7 | mysql> select USER();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
|
添加用户
mysql5以前版本直接使用 INSERT 向 mysql 表中插入mysql用户了,mysql5之后不可以这样操作
1 2 | mysql> insert into mysql.user(Host,User,Password) values( 'localhost' , 'test_user' ,password( '123123' ));
ERROR 1062 (23000): Duplicate entry 'localhost-test_user' for key 'PRIMARY'
|
增加用户 {授予用户指定数据表权限 [使用 GRANT 命令 对用户进行相应授权]}
1 2 3 | mysql> GRANT all privileges ON table1.* TO
'test_user' @ 'localhost' IDENTIFIED BY '123123' WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
|
IDENTIFIED BY 指定用户的登录密码
ALL PRIVILEGES 是表示所有权限,也可以使用 select、update 等权限
*.\ 中前面的*号用来指定数据库名,后面的*号用来指定表名
TO 表示将权限赋予某个用户
ON 用来指定权限针对哪些库和表
'test_user'@'localhost' 表示test_user用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方
WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人
需要刷新系统权限表[flush privilege] 该用户才能生效登录
删除用户
1 | mysql> drop user 'test_user' @ 'localhost' ;
|
查看当前用户的权限
1 2 3 4 5 6 7 | mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root' @ 'localhost' IDENTIFIED BY PASSWORD '\*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' WITH GRANT OPTION |
| GRANT PROXY ON '' @ '' TO 'root' @ 'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
|
查看某个用户的权限
1 2 3 4 5 6 7 | mysql> show grants for 'test_user' @ 'localhost'
+------------------------------------------------------------------------------------------------------------+
| Grants for test_user@localhost |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test_user' @ 'localhost' IDENTIFIED BY PASSWORD '\*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' |
| GRANT ALL PRIVILEGES ON table1.* TO 'test_user' @ 'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------------------+
|
对账户重命名
1 | mysql> rename user 'test_user' @ 'localhost' to 'bb' @ 'localhost' ;
|
修改密码
1.用set password命令
1 | mysql> SET PASSWORD FOR 'test_user' @ 'localhost' = PASSWORD( '123456' );
|
2.用 mysqladmin [进入bin目录]
备注:{格式: mysqladmin -u用户名 -p旧密码 password 新密码]
1 2 | /usr/bin$ mysqladmin -utest_user -p123456 password 123123
mysqladmin: Can 't turn off logging; error: ' Access denied; you need (at least one of) the SUPER privilege(s) for this operation'
|
3.用 update 直接编辑 user 表
1 2 3 4 5 6 7 | mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set PASSWORD = PASSWORD( '123123' ) where user = 'test_user' ;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
|
推荐教程:《MySQL教程》
以上就是Mysql用户管理相关知识介绍的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
mysql 5.7常见数据类型
mysql主键可以为空吗?
mysql的主键命名策略相关
mysql视频教程的源码课件推荐
理解mysql存储过程和函数
mysql怎么修改表名?
初始化mysql的数据库失败怎么办
mysql 如何利用分片来解决 500 亿数据的存储问题
mysql 客户端不输入用户名和密码直接连接数据库的2个方法
mysql中如何把字符串转换为int类型
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » Mysql用户管理相关知识介绍