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管理数据库用户和访问权限的主要内容,如果未能解决你的问题,请参考以下文章

MySQL用户和权限管理

mysql 访问控制和用户管理

mysql管理数据库用户和访问权限

MySQL数据库—— 用户管理和权限管理

MySQL的权限管理和Linux下的常用命令

十MySQL用户管理