mysql管理数据库用户和访问权限
Posted owen-li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql管理数据库用户和访问权限相关的知识,希望对你有一定的参考价值。
1:创建一个数据库用户:
MariaDB [(none)]> create user jarry@localhost identified by "root";
Query OK, 0 rows affected (0.00 sec)
解释:该账户的用户名:jarry,主机名localhost,密码“root” 该用户账户只能从localhost使用密码root进行连接,并且没有任何特权,密码在user表中加密(如图)。 注意:如果没有提供主机名,则假定主机名为“%”,这就意味着该用户可以中任何源主机进行访问
账户 | 描述 |
jack@'localhost' | 用户jack只能从本地主机进行连接 |
jack@'192.168.1.5' | 用户jack可以从主机192.168.1.5进行连接 |
jack@'192.168.1.%' | 用户jack可以从任何属于192.168.1.0主机进行连接 |
jack@'%' | 用户jack可以从任何主机进行连接 |
jack@'200:472:18:b51:c32:a21' | 用户jack可以从主机200:472:18:b51:c32:a21进行连接 |
2:为用户账户授予和撤销特权:
格式:grant select on database.table to username@hostname;
定义要授予的特权;定义要将针对那些表授予特权;要授予的特权的用户。
授权 | 描述 |
grant select on database.table to username@hostname | 给特定用户授予对特定数据库中特定表的选择特权 |
grant select on database.* to username@hostname | 给特定用户授予对特定数据库中所有表的选择权 |
grant select on *.* to username@hostname | 给特定用户授予对所有数据库中所有表的选择特权 |
grant create,alter,drop on database.* to username@hostname | 向特定用户授予特定数据库中,创建,更改,和删除表的特权 |
grant all privileges on *.* to username@hostname | 给特定的用户授予对所有数据库的所有可用特权,事实上相当于创建了一个超级用户(类似root) |
revoke语句可以撤销账户的特权,连接的用户必须具有grant option 特权并且具有要撤销的特权,才能撤销特权。
revoke select,update,delete,insert on inventory.category from jack@localhost;
格式:定义要撤销的特权;定义要针对那些表撤销特权;定义从哪个用户撤销特权。
重要: 在授予或撤销某项特权以后,将从mysql数据库中的特权表中重新加载所有特权。
flush privileges;
显示某个用户授予的特权列表:
show grants for username@hostname;
3:删除用户:
当不需要某个用户时,可以使用drop user username 从数据库将某个用户删除,使用格式与create user相同。drop user username@hostname;
以上是关于mysql管理数据库用户和访问权限的主要内容,如果未能解决你的问题,请参考以下文章