您的位置:首页 > 数据库 > MySQL

浅谈mysql的使用权限以及用户安全

2017-07-19 12:54 316 查看
在mysql数据库中的表与其他的任何关系没有区别,都是可以通过典型的sql命令去修改其结构和数据的。在mysql3.22版本之后,也可以使用grant和revoke命令。

首先必须知道数据库里面root用户拥有最高的权限,当然也拥有创建其他用户的权限,首先先用root用户进入mysql里面,截图如下:



我们现在使用root用户身份来创建一个其他的用户(用户名为wujinfan,密码为king的用户),截图如下:



删除用户的命令则为drop user 用户名(当然必须是最高权限root用户),截图如下:



更改用户名称(当然必须是最高权限root用户),命令为rename user 老名字 to 新名字,截图如下:



更改用户密码(当然必须是最高权限root用户),命令为update mysql.user set password=password(新密码) where user="用户名";,例如之前创建的wujinfan用户,密码为111111,后来把用户名改为了wujin,现在把密码改为666666,截图如下:



这个时候我们重新开一个终端来测试一下,看新的用户是否可以打开,截图如下:



ok,没有毛病!!!

虽然在root用户底下,我们创建了一个新的用户,但是这个新的用户不具备和root用户同样大的权限,这个时候我们就需要在root用户下为这个新的用户授予某些权限,这是一个权限表:

all------>设置除了grant option之外的所有的权限

alter------>允许使用alter table

alter routine------>更改或取消已经存在的子程序

create------>允许使用create table

create routine------>创建已经存在的子程序

create temporary tables------> 允许使用create temporary table

create user------>允许使用create user,drop  user,rename和revoke all privileges

create view------>允许使用create view

delete------>允许使用delete

drop------>允许使用drop table\

execute------>允许用户运行已存储的子程序

file------>允许使用select......into outfile和load data infile

index------>允许使用create index和drop index

insert------>允许使用insert

lock tables------>允许使用您拥有的select权限的表使用的lock tables

process------>允许使用show full processlist

reload------>允许使用flush

replication client------>允许用户查询从属服务器或主服务器的地址

replication slave------>用于复制型从属服务器(从主服务器中读取二进制文件)

select------>允许使用select

show databases------->允许使用show databases

show views------>允许使用show views

shutdown------>允许使用mysqladmin shutdown

update------>允许使用update

grant option------>允许授予权限

接下来,就授予wujin这个用户all权限,在授予权限之前要先使用这条命令use mysql就相当于给一个数据库里面创建一张表,首先你必须先选择所使用的数据库,如果不输入use mysql就会报错的,截图如下:



但是如果你在授予权限之前输入了use mysql的命令,就不会出现这样的问题了,截图如下:

·


在还有一个mysql数据库中创建用户还存在一个技术安全的问题,那就是权限更改河师大教务管理何时生效。因为mysql服务器启动的时候以及使用grant和revoke语句的时候,服务器会自动读取grant表。但是手动更改的时候,mysql服务器将不会注意到他们已经被修改了,所以这就要求DBA必须以管理员身份对数据库进行实时更新,输入如下命令flush privileges,截图如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息