MySQL创建用户授权

梦莱10个月前技术文章188

创建用户授权

一、创建用户

1.创建管理用户

create user 'test'@'%' identified by 'Test123@'

create user 'test'@'localhost' identified by 'Test123@'

create user '名称'@'机器' identified by '密码';

--创建+赋权限
grant all privileges on test.* to test@'%' identified by '123456';  

MySQL 8.0 不再支持如上语法,需要先创建再赋权限一步一步来

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1

2.查看 mysql 当前用户情况

select user, host, account_locked, password_expired from mysql.user;

select 用户名称,机器ip,是否被锁定,密码是否过期 from mysql.user;

3.免密登陆

my.cnf 里面 [mysqld] 下添加 skip_grant_tables

4.删除用户

drop user 'mysql'@'%';

二、授权

1.授予权限

grant select on *.* to 'test'@'%' with grant option;

grant all on *.* to 'test'@'%' with grant option;

mysql中只有with grant option,对A用户进行的授权,A可以授予给其他用户,当收回对A的授权时,A授予给其他用户的权限不会被级联收回。注意with grant option也可以被授予给其他用户;

oracle 中 有with admin option和with grant option 两种,区别如下:

with admin option: 是级联授权,不级联回收/删除权限;是属于系统授权;授权该权限的用户有权将某个权限授给其他用户或角色,当回收/删除权限时,已授权给其他用户的照样有权限,即不影响级联的授权,如userA用户赋权给userB用户,回收userA用户的权限时,userB用户的权限保持,不会失效。

with grant option:是级联型的授权和回收/删除权限;属于对象授权;与with admin option的区别是,当回收权限时,权限不级联回收,即userA用户赋权给userB用户,回收userA用户的权限时,userB用户的权限也会跟着被回收掉。

2.回收权限

revoke select on *.* from 'a'@'%';

revoke all on *.* from 'a'@'%';

3.查看用户权限

select user,host,grant_priv,super_priv from mysql.user;

查看是否存在超级用户及授权权限

SELECT * FROM mysql.user\G

查看所有用户权限

show grants;

查看当前用户权限

show grants for 'a'@'%';

查看其他用户权限

4.授予高级用户权限

给用户赋予super权限(super和ALL PRIVILEGES都可以):
GRANT super ON *.* TO 'mysql'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%';

删除用户的super权限(super和ALL PRIVILEGES都可以):
REVOKE super ON *.* FROM 'mysql'@'%';
REVOKE ALL PRIVILEGES ON *.* FROM 'mysql'@'%';

三、总结

1、高权限账号哪怕一开始不赋予任何库权限,也可以 kill 掉正在执行的 SQL

2、云上不支持 grant all on *.* to 'test'@'%' identified by 'Test123@'; 用法会报错 ERROR 1045 (28000): Access denied for user 'db_admin'@'%' (using password: YES) ,可以使用如下挨个列权限代替

grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER  on *.* to `test1`@`%`;


相关文章

Hadoop3.2.4纠删码基础操作(二)

Hadoop3.2.4纠删码基础操作(二)

1、纠删码基础操作纠删码策略是与具体的路径(path)相关联的。也就是说,如果我们要使用纠删码,则要给一个具体的路径设置纠删码策略,后续,所有往此目录下存储的文件,都会执行此策略。1.首先我们在HDF...

dbms_support包跟踪10046

系统默认没有安装dbms_support这个包,可以手动执行$ORACLE_HOME/rdbms/admin/dbmssupp.sql脚本来创建该包。安装dbms_support包: SQL>...

某客户ERP华为云502错误案例

某客户ERP华为云502错误案例

1、客户反馈系统出现502错误图1上面的截图,我们大致可以看到浏览器显示的502错误,但是我们还有获知更多的信息。通过沟通我们可以确定:此功能为新上线功能,上线后一直是访问502,但是开发又找不到相关...

寻找CPU使用率高进程方法

寻找CPU使用率高进程方法

背景节点报CPU使用率高,需要定位是什么进程占用CPU使用率高。CPU使用率持续较高在对应节点使用 “top”命令,然后键盘输入“P”,即按照CPU使用率排序进程。执行ps -ef | grep &l...

在kubernetes中,让某个node成为专属节点

如何让node 去”选择”只有谁(pod)能部署到自身上面?看了下现有的Node Selectors、Node Affinity、Node Taints, 经过比对,发现Node Taints 更适合...

CDN下载文件报错

CDN下载文件报错

一、问题现象通过域名下载文件,下载到100M左右的时候,会提示下载错误,无法继续下载。二、解决思路业务链路:域名解析到cdn---slb--后端服务器。首先需要判断问题出在哪一层,再看这一层是否有什么...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。