Mysql中查看用户、创建用户、删除用户、授权用户、回收授权

您所在的位置:网站首页 mysql删除数据库的命令有哪些 Mysql中查看用户、创建用户、删除用户、授权用户、回收授权

Mysql中查看用户、创建用户、删除用户、授权用户、回收授权

2024-03-22 21:34| 来源: 网络整理| 查看: 265

一、创建用户

1.语法

      查看用户没有直接的SQL语句,需要进入 mysql数据库的user表(mysql库和user表是mysql安装后就有的)查看所有用户信息。代码如下:

use mysql; select * from user;

2. 结果示例:

3.注意事项

   5.7版本后,移除了password字段, 而是改成了字段authentication_string来存储用户密码。

二、创建用户

1.语法

CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';

参数:

user_name:要创建用户的名字。

host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则填‘localhost’ ,如果允许从远程登陆,则填远程主机的ip,如果允许所有的主机,则填通配符"%"。

password:新创建用户的登陆数据库密码,如果没密码可以不写。

2.示例

//新建用户czt,密码为123456,只能从本地登陆mysql所在服务器 CREATE USER 'czt'@'localhost' IDENTIFED BY '123456'; //新建用户czt,密码为123456,可以从其他电脑远程登陆mysql所在服务器 CREATE USER 'czt'@'%' IDENTIFED BY '123456'; //新建用户czt,没有密码,可以从其他电脑远程登陆mysql服务器 CREATE USER 'czt'@'%'; 三、删除用户

1.语法

DROP USER 'user_name'@'host';

参数:user_name:要删除的用户名

           host:主机名或IP

2.示例

DROP USER 'czt'@'%'; //表示删除用户czt

 

四、设置与更改用户密码

1.语法

// 设置指定主机指定用户的密码 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); // 设置当前主机当前用户的密码 SET PASSWORD = PASSWORD('newpassword');

2.示例

// 设置指定本机的czt用户设置密码123456 SET PASSWORD FOR 'czt'@'localhost' = PASSWORD('123456'); // 设置当前主机当前用户的密码为123456 SET PASSWORD = PASSWORD('123456');

注意:第二个PASSWORD()是函数,用来给用密码加密

五、授权用户

1.语法

grant privileges on databasename.tablename to 'username'@'host'

   参数:

    privileges:表示要授予什么权力,例如select、insert、update等,如果要授予全部权力,则填 all privileges,privileges可以省略

    databasename.tablename:表示用户的权限是用在哪个库的哪个表,如果想要用户的权限作用于所有数据库的所有表,则填 *.*,*是一个通配符,表示全部。

    ’username‘@‘host’:表示授权给哪个主机的哪个用户。

2.示例

//给用户czt授权在test库的person表上执行insert和select的权利 grant select, insert ON test.person TO 'czt'@'%'; //给用户czt授权在所有库所有表的所有的权力。 grant all on *.* TO 'czt'@'%'; // 操作MySQL外键权限。 grant references on testdb.* to 'czt'@'192.168.0.2'; // 操作MySQL临时表权限。 grant create temporary tables on testdb.* to 'czt'@'192.168.0.2'; //操作MySQL索引权限。 grant index on testdb.* to 'czt'@'192.168.0.2'; //操作 MySQL视图、查看视图源代码权限。 grant create view on testdb.* to 'czt'@'192.168.0.2'; grant show view on testdb.* to 'czt'@'192.168.0.2'; // 操作MySQL存储过程、函数 权限。 grant create routine on testdb.* to 'czt'@'192.168.0.2'; grant alter routine on testdb.* to 'czt'@'192.168.0.2'; grant execute on testdb.* to 'czt'@'192.168.0.2';

3.权限传递

  让用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,需要在后面加上WITH GRANT OPTION,如

GRANT ALL ON *.* TO 'aaa'@'%' WITH GRANT OPTION; 六、回收权限

1.语法

REVOKE privileges ON database.tablename FROM 'username'@'host';

2.示例

REVOKE select ON test.person FROM 'czt'@'localhost';

3.注意事项

      如果给用户'czt'@'%'授权时使用GRANT SELECT ON test.user TO 'czt'@'%',则使用REVOKE SELECT ON *.* FROM 'czt'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 权限。相反,如果授权使用的是GRANT SELECT ON *.* TO 'czt'@'%';则REVOKE SELECT ON test.user FROM 'czt'@'%';命令也不能撤销该用户对test数据库中user表的select权限。

      如果想查看用户的具体权限信息,可以用命令SHOW GRANTS FOR 'czt'@'%'; 查看。

七、注意事项

 1. flush prrivileges:可以在不重启mysql服务器的情况下,让用户数据和权限的修改立即生效

 2. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3