为什么要创建不同的用户呢?
因为root用户权限太大,为了安全起见,创建不同的用户,并赋予不同的权限,可以有效保证数据库的安全。
mysql -u root -p
注意:
2、创建用户若 mysql -u root -p后面加密码的话,-p和密码之间不能有空格
如密码是:123456应写成 mysql -u root -p123456,否则会报错
mysql> create user admin identified by '123456'; Query OK, 0 rows affected (0.00 sec)
3、为创建的用户赋予权限admin即为新用户的用户名
123456 即为新用户的登录密码
mysql> grant all privileges on myweb.* to 'admin'@'%'; Query OK, 0 rows affected (0.00 sec)
4、刷新数据库myweb即为指定的数据库
% 即表示无论此用户以哪个IP操作都可以操作
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)5、查看用户的权限
通过show grants命令查看权限授予执行的命令:
mysql> show grants for 'admin'; +--------------------------------------------------+ | Grants for admin@% | +--------------------------------------------------+ | GRANT USAGE ON *.* TO 'admin'@'%' | | GRANT ALL PRIVILEGES ON `myweb`.* TO 'admin'@'%' | +--------------------------------------------------+ 2 rows in set (0.00 sec)
此时admin用户已经拥有了对myweb数据库的所有权限。
再次验证admin用户是否已经拥有了myweb数据库的所有权限。
mysql> select User,Db,host,Select_priv,Insert_priv,Update_priv,Delete_priv from mysql.db where User='admin'; +-------+-------+------+-------------+-------------+-------------+-------------+ | User | Db | host | Select_priv | Insert_priv | Update_priv | Delete_priv | +-------+-------+------+-------------+-------------+-------------+-------------+ | admin | myweb | % | Y | Y | Y | Y | +-------+-------+------+-------------+-------------+-------------+-------------+ 1 row in set (0.00 sec)6、以 admin 帐户登录
此时admin登录成功
查看所有的数据库,只有myweb库可用
对比root帐户,myweb库只是其中之一
删除用户权限可以通过语句revoke完成
Revoke permission on ‘database’,’tables’ from ‘username’@’host’
# 收回用户 admin 远程登录的 myweb 权限,只能以 192.168.*.* 登录; mysql> revoke drop on myweb.* from admin@'192.168.%.%'; # 收回用户 admin 本地登录的 myweb 权限,如下几种写法均可; mysql> revoke select,create,delete,grant option on myweb.* from 'admin'@'localhost'; mysql> revoke all privileges,grant option from 'admin'@'localhost'; mysql> revoke all privileges on myweb.* from 'admin'@'localhost'; mysql> revoke grant option on myweb.* from 'admin'@'localhost';2、添加指定用户的权限
# 给admin用户添加对goods的所有权限,赋予远程登陆的权限 grant all privileges on goods.* to 'admin'@'%'; # 给admin用户添加对goods的所有权限,赋予本地登录的权限 grant all privileges on goods.* to 'admin'@'localhost';3、修改用户密码
# 修改 admin 的本地登录密码为 abcdef
mysql> alter user 'admin'@'localhost' identified by 'abcdef';
Query OK, 0 rows affected (0.00 sec)
# % 代表任意 ip,localhost 代表只有本地能登录
# 修改 admin 远程登录密码为 abcdef
mysql> set password for 'dayi'@'%'=password('abcdef');
Query OK, 0 rows affected (0.00 sec)
三、删除用户
1、查询所有的用户信息
select user,host from mysql.user;2、删除指定用户
mysql> DROP USER 'admin'@'%'; Query OK, 0 rows affected (0.00 sec)
参考资料
- [1].百度.更多关于MySQL数据库权限类型(PrivilegesCode).[DB/OL].2013-07-13
- [2].博客园.MySQL用户管理:添加用户、授权、删除用户
- [3].博客园.MySQL数据库中创建新用户,并将某个指定库的操作权限赋予此用户。。。



