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权限的主要内容,如果未能解决你的问题,请参考以下文章