mysql权限

Posted 白日梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql权限相关的知识,希望对你有一定的参考价值。

1.初始化完成之后的用户:只有一个root用户,5.6及之前的版本是没有密码的,5.7会产生随机密码,在初始化时可以看到,在配置日志文件中也可以查看。

2.用户的权限管理步骤

1)检查用户的-hip和用户名是否被允许

2)查看mysql.user表是否存在该用户,这里没有权限设置,默认对所有的库都有权限

3)然后查看mysql.db表中该用户对某些库的权限

4)然后查看mysql.table_priv对于某个库的某张表的权限查看

5)然后查看mysql.columns_priv对某张表的某列的查看权限

查看命令: 例如查看user表描述,进入mysql ,语句:  use  mysql ; desc user;

查看user表中root的内容,select *  from user where  user="root"  \\G     \\G表示把结果集竖起来便于查看;

如下authentication_String 就是我们的密码,但是是同password函数处理过的,是不可逆的,所以是安全的;

3.常用权限

sql语句:select, insert ,update, delete , index等

存储过程: create routine,  alter routine ,execute ,irigger

管理权限:super, reload ,  show database ,shutdown,   grant  option等

所有权限可以查看:https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html

 

4.添加用户

create  user    \'用户名\'@\'ip地址\'  identified   by  \'密码\';

grant  privileges(权限类型) db.table(数据库表名,所有的可以用*.*) to \'用户名\'@\'ip地址\'  identified   by  \'密码\';//给予权限,在没有该用户的前提下创建用户

insert  into   mysql.user(host,user,password,[priviligelist]) values(地址,用户名,密码,权限)

 

5.删除用户

drop  user  \'用户名\'@\'ip地址\' ;

 

6.查看权限

show  grants  for  \'用户名\'@\'ip地址\' ;//查看权限信息

 

7.授予权限

privileges:select,insert,update,delete,create,drop,references,index,alter,create temporary tables,lock tables,execute,create view,show view,create routine,alter routine,event,trigger

grant  privileges(权限类型).,.,. db.table(数据库表名,所有的可以用*.*表示所有的库,库名.*表示某库下的所有表,该库不能与java连接,连接后需要关闭才能设置) to \'用户名\'@\'ip地址\'(所有的ip用‘%’)  identified   by  \'密码\'  with  grant  option;//授予权限以及grant权限

revoke  privileges(权限类型).,.,. db.table(数据库表名,所有的可以用*.*) to \'用户名\'@\'ip地址\'  identified   by  \'密码\'  with  grant  option;

grant all PRIVILEGES on test_db.* to ’root’@\'ip\'  identified by \'密码\';//all PRIVILEGES  所以的PRIVILEGES 权限;

revoke all  privileges  ,grant  option  from \'用户名\'@\'ip地址\' ;//收回所有的权限

grant select(属性) on db.table  to  ’root’@\'ip\'  identified by \'密码\';//grant 作用在表中的列上

备注:

问题1

在linux上设置ip之后有可能导致jdbc无法连接上,所以将ip改为%  或者一个波段。

问题2

在设置require x509  或者ssl之后 没有认证mysql5.6是无法登陆的,--ssl =false没作用了;

以上是关于mysql权限的主要内容,如果未能解决你的问题,请参考以下文章

教程4 - 验证和权限

gitlab 权限说明

linux中怎么查看mysql数据库版本

Django REST框架--认证和权限

片段中的请求权限

片段中的请求权限不显示对话框