欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2.DCL

程序员文章站 2024-03-21 16:41:16
...

MySQL的权限体系

1.MySQL的权限信息主要存储在以下几张表中,当用户连接数据库时,MySQL会根据这些表对用户进行权限验证。

表名 描述
user 用户权限表,记录账号、密码及全局性权限信息
db 记录数据库相关权限
table_priv 用户对某个表拥有的权限
column_priv 用户对某表的某列所拥有的权限
procs_priv 用户对存储过程及存储函数的操作权限

2.使用grant和revoke进行授权、撤销授权时,需要指定具体是哪些权限,这些权限大体可以分为3类,数据类、结构类和管理类。

数据 结构 管理
select create usage
insert alter grant
update index super
delete drop process
file create temporary tables reload
show view shutdown
create routine show databases
alter routine lock tables
execute references
create view repucation cuent
event repucation slave
trigger create user

权限管理

1.创建用户

create user'用户名' [@'主机名'] [identified by '密码'];

如下图所示,创建一个用户名为steven,主机名为localhost,密码为admin123456的用户。
2.DCL

2.删除用户

drop user'用户名' [@'主机名'];

如下图所示,删除用户名为steven,主机名为localhost的用户。
2.DCL

3.修改密码

alter user'用户名'@'主机名' identified by '新密码';

如下图所示,将创建的用户名为steven,主机名为localhost,密码为admin123456的用户密码修改为admin123。
2.DCL

4.查看权限

show grants for '用户名' [@'主机名'];

如下图所示,查看用户名为steven,主机名为localhost的用户权限。
2.DCL

5.授权

grant all privileges on databaseName.tableName to '用户名' [@'主机名'];

如下图所示,将数据库mydb的contacts表权限赋予用户名为steven,主机名为localhost的用户。
2.DCL

6.撤销授权

revoke all privileges on databaseName.tableName from '用户名' [@'主机名'] ;

如下图所示,收回用户名为steven,主机名为localhost的用户所拥有的contacts表权限。
2.DCL

7.刷新权限

flush privileges;

8.禁止(root)用户进行远程登录
MySQL的用户由用户名和主机名以及密码构成,禁止远程登录实际上就是限定账号只能本机登录,因此只需要将主机名称设置为localhost即可。

update user set host = 'localhost' where user = 'username';
相关标签: 从头开始学MySQL

推荐阅读