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表中加密(如图)。mysql管理数据库用户和访问权限_第1张图片
注意:如果没有提供主机名,则假定主机名为“%”,这就意味着该用户可以中任何源主机进行访问
账户示例
账户 描述
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;



你可能感兴趣的:(SQL)